1858
やまだの侃侃諤諤やまだ、今日の一言 ∋ やまだ、2006年4月22日の一言 -- MySQLと日本語の問題
kankan-gakugaku

MySQLと日本語の問題

2006年4月22日(土) 12:30:04  参考ページ

4月12日に悪戦苦闘した文字コードの問題の原因が判明しました。文字コードUTF-8ではなぜか日本語が全て消されるという問題です。

MySQLで日本語を使用する場合に、MySQLのバージョン3.21〜4.0まではサーバのCharacter-setを日本語にするだけでよかったようですが、バージョン4.1以上ではもっと条件が厳しくなるようです。すなわち、データベースとテーブルとフィールドの日本語のCharacter-setとクライアントのCharacter-setを統一する必要があるようです。

さて、このcharacter-setが統一されていないとき、char,textなど文字列型のフィールドにはサーバの文字コードの範囲を外れる文字はいっさいINSERTされず、勝手に削られてしまうようです。そこで、「入力した文字がサーバ側で消されてしまう」という現象が起こるになるようです。

この現象をさけるには、クライアントのキャラクターセットとdatabaseとtableとfieldのキャラクターセットを揃えてやればいいのです。クライアントのCharacter-setは"show variables like 'character_set_%'"でしらべることができ、'character-set-client','character-set-connection','character-set-results'がクライアントのCharacter-setです。これを調べた上で、テーブルやフィールドのCharacter-setを決めて、さらにそのCharacter-setででINSERTなどのmysql文を実行すればいいのです。

自分で操作できない、他のサーバで運用するためのPHPスクリプトを作るのは大変なようです。

Comment欄

しゃち 2006年4月22日 23:55:11

MySQLとかPHPし始めたん?

やまだ 2006年4月23日 12:00:53

はい、始めました。ちなみに拡張子をつけてみればわかると思いますが、これもPHPです。しかし、詳しく理解せずに使っているためにこのような問題が起きたのだと思います。そこへ、他人の作ったものを動かそうとするから困ったことが発生したのだと思われます。いまだにどこまでが必要条件なんかがはっきりとはわかっていません。

最初の目的は、高校のクラス会の出席確認と自動確認メールのために始めたのですが、最近は数値計算につかうと便利そうだと思っています。

Name : (空欄歓迎)

E-mail or URL : (空欄可能)

Comment : (空欄不可。HTML のタグは一切使えません。URLらしい文字列はリンクになります。 最近、スパムが増えたので、NGワードを設定しました。もしそれにひっかかってしまったら表示されませんが、ごめんなさい。)

MINI System
Recent
Recent comments

2018年6月
2018年4月
2018年1月
2017年11月
2017年7月
2017年6月
2017年5月