MySQLの内部に設けられたテーブルに定義されたコーディングの問題をコードします

時には私たちが、中国は実際にはコーデックの問題であるデータテーブル中国の文字列を挿入するテーブルにデータの文字列を挿入しませんでした。異なる時間コーディングと、MySQLの内部設定をコーディング異常な符号化をもたらす、又はデータテーブルにデータを挿入することができない、またはデータがコードテーブルに挿入されているが、それは状況を文字化けすることの定義テーブル。ここでは中国のデータの挿入を可能に私の個人的な解決策は以下のとおりです。

内部コーディングMySQLの設定を見ます

最初は内部コーディングMySQLの設定を表示することです。ビューは含まれていた文字の先頭でグローバル変数を

SHOW VARIABLESはLIKE  ' 文字%' ;

結果:

 

ソリューション

内部コーディングMySQLの設定を変更します

変更クライアント、接続、結果、データベース、サーバーのGBKまたはUTF8にコード

  1. クライアントのエンコーディングはUTF8で変更

    SET character_set_client = UTF8。
  2. エンコーディングはUTF8に接続されている修正しました

    SET character_set_connectionに= UTF8。
  3. 変更クエリ結果がUTF8としてエンコードされます

    SET character_set_results = UTF8。
  4. UTF8のデータベース符号化方式を変更します。

    SET character_set_database = UTF8。
  5. データベースサーバがUTF8でコード化された修正
    SET character_set_server = UTF8。

ビューは修正が成功したかどうかを確認するために、再び内部コードをMySQLの

SHOW VARIABLESはLIKE  ' 文字%' ;

 

提供される修飾のコーディングテーブル

ビューテーブル作成SQL文

SHOWは、CREATE  TABLEを表名。

学生として見て:

SHOWは、CREATE  TABLEの学生を。

次のように私のテスト結果があるためにテーブルが既に作成されています。

CREATE  TABLE `students`(
  ` Id`のINT30NOT  NULLを
  `NAME`のVARCHAR10DEFAULTの NULL 
  ` Age`のINT4DEFAULTの NULL 
  `Gender`のVARCHAR25DEFAULTの 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`のINT30NOT  NULLを
  `NAME`のVARCHAR10DEFAULTの NULL 
  ` Age`のINT4DEFAULTの NULL 
  `Gender`のVARCHAR25DEFAULTの NULL PRIMARY  KEY (` Id`)
)ENGINE = InnoDBのDEFAULT CHARSET = utf8を

成功が変更されていることがわかりました。今度は、中国の学生のテーブルにデータを追加することができます。

 

おすすめ

転載: www.cnblogs.com/liyihua/p/12309804.html