English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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 サービスを再起動します
今度もう一度データベース操作を実行すると、中国語が正常に保存されます!
読んでいただきありがとうございます。皆様のサポートに感謝します!