1875
やまだの侃侃諤諤やまだ、今日の一言 ∋ やまだ、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月
2017年4月
2017年3月
2017年1月
2016年12月
2016年11月
2016年10月
2016年9月
2015年6月
2015年5月
2015年4月
2015年2月
2015年1月
2014年10月
2014年8月
2014年7月
2014年5月
2014年4月
2014年3月
2014年2月
2013年12月
2013年9月
2013年8月
2013年7月
2013年6月
2013年5月
2013年2月
2013年1月
2012年12月
2012年11月
2012年9月
2012年8月
2012年7月
2012年5月
2012年4月
2012年2月
2012年1月
2011年12月
2011年11月
2011年10月
2011年9月
2011年7月
2011年6月
2011年5月
2011年4月
2011年3月
2011年2月
2011年1月
2010年12月
2010年11月
2010年10月
2010年9月
2010年8月
2010年7月
2010年6月
2010年5月
2010年4月
2010年3月
2010年2月
2010年1月
2009年12月
2009年11月
2009年10月
2009年9月
2009年8月
2009年7月
2009年6月
2009年5月
2009年4月
2009年3月
2009年2月
2009年1月
2008年12月
2008年11月
2008年10月
2008年9月
2008年8月
2008年7月
2008年6月
2008年5月
2008年4月
2008年3月
2008年2月
2008年1月
2007年12月
2007年11月
2007年10月
2007年9月
2007年8月
2007年7月
2007年6月
2007年5月
2007年4月
2007年3月
2007年2月
2007年1月
2006年12月
2006年11月
2006年10月
2006年9月
2006年8月
2006年7月