「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > MySQL で UTF8 文字エンコーディングを使用してテーブルの書式設定を保持するにはどうすればよいですか?

MySQL で UTF8 文字エンコーディングを使用してテーブルの書式設定を保持するにはどうすればよいですか?

2024 年 11 月 6 日に公開
ブラウズ:854

How to Preserve Table Formatting in MySQL with UTF8 Character Encoding?

UTF8 文字エンコーディングによる MySQL コマンド ラインの書式設定の強化

データベース テーブルに格納されているスウェーデン語およびノルウェー語の文字列を操作しているときに、データのクエリ時にテーブルの書式設定で問題が発生する可能性があります。

問題ステートメント

デフォルトでは、「set names latin1;」を使用します。歪んだ出力が生成されます:

 ----------------------------------- 
| name                              |
 ----------------------------------- 
| Kid Interi#####                   | 
| Bwg Homes                         | 
| If Skadef####kring                | 
| Jangaard Export                   | 
| Nordisk Film                      | 
 ----------------------------------- 

「set names utf8;」に切り替えます文字は正しく表示されますが、表形式が崩れます:

 ----------------------------------- 
| name                              |
 ----------------------------------- 
| Kid Interiør                     | 
| Bwg Homes                         | 
| If Skadeförsäkring              | 
| Jangaard Export                   | 
| Nordisk Film                      | 
 ----------------------------------- 

解決策

保存するにはUTF8 文字エンコーディングを使用しているときに表形式に設定すると、「--default-character-set=utf8」オプションを使用して MySQL クライアントを起動できます:

mysql --default-character-set=utf8

これを「/etc/mysql/my.cnf」ファイルのデフォルト設定として構成することもできます:

[mysql]
default-character-set=utf8

これにより、character_set_client、character_set_connection、およびcharacter_set_results構成変数がutf8に設定されます。

書式設定の問題が解決しない場合は、データベース、テーブル、および列も同じであることを確認してください。次のコマンドを使用して utf8 に設定します:

SHOW VARIABLES LIKE '%CHAR%';
SET character-set-server = utf8;

さらに、latin1 接続で書き込まれた可能性のある Unicode 文字がないか確認してください。これを解決するには、値が書き込まれたのと同じ文字セットでデータベースに接続するか、正しいエンコーディングを使用して値を取得して書き換えます。

注: MySQL の utf8 エンコーディングは完全な Unicode ではありません。実装。真の UTF-8 実装には utf8mb4 文字セットの使用を検討してください:

mysql --default-character-set=utf8mb4
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3