時には私たちが、中国は実際にはコーデックの問題であるデータテーブル中国の文字列を挿入するテーブルにデータの文字列を挿入しませんでした。異なる時間コーディングと、MySQLの内部設定をコーディング異常な符号化をもたらす、又はデータテーブルにデータを挿入することができない、またはデータがコードテーブルに挿入されているが、それは状況を文字化けすることの定義テーブル。ここでは中国のデータの挿入を可能に私の個人的な解決策は以下のとおりです。
内部コーディングMySQLの設定を見ます
最初は内部コーディングMySQLの設定を表示することです。ビューは含まれていた文字の先頭でグローバル変数を
SHOW VARIABLESはLIKE ' 文字%' ;
結果:
ソリューション
内部コーディングMySQLの設定を変更します
変更クライアント、接続、結果、データベース、サーバーのGBKまたはUTF8にコード
-
クライアントのエンコーディングはUTF8で変更
SET character_set_client = UTF8。
-
エンコーディングはUTF8に接続されている修正しました
SET character_set_connectionに= UTF8。
-
変更クエリ結果がUTF8としてエンコードされます
SET character_set_results = UTF8。
-
UTF8のデータベース符号化方式を変更します。
SET character_set_database = UTF8。
- データベースサーバがUTF8でコード化された修正
SET character_set_server = UTF8。
ビューは修正が成功したかどうかを確認するために、再び内部コードをMySQLの
SHOW VARIABLESはLIKE ' 文字%' ;
提供される修飾のコーディングテーブル
ビューテーブル作成SQL文
SHOWは、CREATE TABLEを表名。
学生として見て:
SHOWは、CREATE TABLEの学生を。
次のように私のテスト結果があるためにテーブルが既に作成されています。
CREATE TABLE `students`( ` Id`のINT(30)NOT NULLを、 `NAME`のVARCHAR(10)DEFAULTの NULL 、 ` Age`のINT(4)DEFAULTの NULL 、 `Gender`のVARCHAR(25)DEFAULTの NULL 、 PRIMARY KEY (` Id`) )ENGINE = InnoDBのDEFAULT CHARSET = latin1の
CHARSET = LATIN1を参照して、即ち符号化形式の学生テーブルはLATIN1あります。
修飾された表の符号化フォーマット
ALTER TABLEテーブル名CONVERT TOの CHARACTER SET新しいエンコーディング形式のCOLLATE照合。
生徒たちは、上記の表を表示します:
ALTER TABLEの学生のCONVERT TO CHARACTERの SETのutf8のCOLLATE utf8_general_ci;
修正符号化フォーマットテーブルの学生utf8では、MySQLの照合がutf8_general_ciです
成功したSQL学生のテーブルを表示するには、再度変更後:
CREATE TABLE `students`( ` Id`のINT(30)NOT NULLを、 `NAME`のVARCHAR(10)DEFAULTの NULL 、 ` Age`のINT(4)DEFAULTの NULL 、 `Gender`のVARCHAR(25)DEFAULTの NULL 、 PRIMARY KEY (` Id`) )ENGINE = InnoDBのDEFAULT CHARSET = utf8を
成功が変更されていることがわかりました。今度は、中国の学生のテーブルにデータを追加することができます。