English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Mac MySQLデータベースの中国語の乱マーク問題の解決策

Mac上のMySQLデータベース中国語のエンコードが狂う解決策:

フレームワークを使用してデータベースの保存操作を行う際に、頻繁に中国語のエンコードが狂う問題に直面することがあります。

例えば、JavaのSSHフレームワークを使用する場合、web.xmlファイルでエンコードのフィルタを設定する必要があります。具体的なコードは以下の通りです:

<span style="font-family:FangSong_GB2312;font-size:14px;"><!-- フォーム処理でエンコードが狂う場合、OpenSessionInViewFilterのフィルタの前に配置する必要があります。 --> 
<filter> 
  <filter-name>CharacterFilter</filter-name> 
  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
  <init-param> 
    <param-name>encoding</param-name> 
    <param-value>UTF-8</param-value> 
  </init-param> 
</filter> 
<filter-mapping> 
  <filter-name>CharacterFilter</filter-name> 
  <url-pattern>/*</url-pattern> 
</filter-mapping></span> 

データベースにデータを保存する際に、データベースに保存される中国語が乱雑であることが判明し、その時点でプロジェクトのデバッグを行い、最終的にSQLに渡されるパラメータの値が正常な中国語であることが判明しました。

その場合、データベースのエンコードを確認する必要があります。

SQLコマンドを使用してデフォルトのエンコード形式を確認します:

<span style="font-family:FangSong_GB2312;font-size:14px;">show variables like "%char%";</span> 

testデータベースのエンコード形式を確認します:

<span style="font-family:FangSong_GB2312;font-size:14px;">show create database test;</span> 

次にMaxのMySQLエンコードの変更を行います:

Mac版のMySQLのデフォルトの文字コードはutfではありません-8に設定されていますので、以下の手順で修正が必要です

ターミナルで以下を入力します

<span style="font-family:FangSong_GB2312;font-size:14px;">sudo -s</span> 

次にパスワードの入力を求められます。これはシステムのパスワードです!

コマンドラインで以下を入力します

<span style="font-family:FangSong_GB2312;font-size:14px;">cd /usr/local/mysql/support-files</span> 

続いて入力します(ファイルをetcディレクトリにコピーします)

<span style="font-family:FangSong_GB2312;font-size:14px;">cp my-default.cnf /etc/my.cnf</span> 

続いて入力します(etcディレクトリに入ります)

<span style="font-family:FangSong_GB2312;font-size:14px;">cd /etc</span> 

続いて入力します

<span style="font-family:FangSong_GB2312;font-size:14px;">vimy.cnf</span> 

この時点で、viツールでmy.cnfファイルが開かれていることに気づくでしょう。Macのシステムバージョンによっては異なりますが、カーソルの上下左右の移動はキーボードのh、j、k、lキーを使用して行われます10.9.3システムのカーソルキーが効果があります!

次にjキーを押して、[client]の最後にカーソルを移動し、属性を追加します:(または下キーを使用)

<span style="font-family:FangSong_GB2312;font-size:14px;">default-character-set=utf8(この属性mysql 5.5以降、この属性を変更することはできません

mysqldの下に追加することもできます5.5以前のバージョンではこの属性を無視します)</span> 

さらにキーを押し続け、カーソルを[mysqld]の後ろに移動して、以下を追加します3個属性

<span style="font-family:FangSong_GB2312;font-size:14px;">default-storage-engine=INNODB 
character-set-server=utf8 
collation-server=utf8_general_ci</span> 

キーボードの左上に配置されているescキーを押して編集モードから退出し、次にコロンとアルファベットxを入力します

MySql サービスを再起動します

今度もう一度データベース操作を実行すると、中国語が正常に保存されます!

読んでいただきありがとうございます。皆様のサポートに感謝します!

おすすめ