ryuzi_kambe さんが書きました:
まず時間について時刻まで表示されないということなので、その点の調査と、
原因は EUC-JP や Shift_JIS よりも UTF-8 の方が1文字のバイト数が大きく(UTF-8 で日本語は主に3byte)、マルチバイト文字を含むフィールドについては必要なバイト数が増えます。
しかし、古い mysql はフィールド長を文字数ではなくバイト数で扱うというダメダメな仕様であるため、英語前提で用意したフィールド長では足りません。バイト数が増えたからこれまで収まっていたデータがあふれ、最後の時刻部分とかが切り捨てられたからです。
データを移行する前にデータベーススキーマの変更が必要でした。
http://firehacks.org/blog/posts/53もしこのフィールドだけスキーマの変更を忘れていたのではなく、一切スキーマの変更なしでデータの文字コードだけ変えていたのであれば、他にもいろいろなデータが切り捨てられているはずです。
具体的にはトピック名が大量に切り捨てられているのではないかと思います。
ryuzi_kambe さんが書きました:
マルチバイト系に関しては過去のデータが取り出せるような UI を用意する方向が
良いかと思います。
UI を用意するのは大変だし、ユーザの負担になります。とくに問題がない限りユーザデータやトピックとかで文字化けや切り捨てられているデータについては同一 ID のデータを古いデータベースから持ってきて上書きするべきだと思います。
# もちろんスキーマの変更(データ長の拡張)が先。
# スキーマの変更は mysqldump しなくても phpMyAdmin で可能
ryuzi_kambe さんが書きました:
引き続き問題がありましたら、こちらまでご報告下さい
http://d.hatena.ne.jp/ryuzi_kambe/20061017/p1phpBB ではなくて申し訳ありません。私の個人ブログですが、ここに報告いただいた内容をメンテナンス作業とのかねあいで見られなくなることがならないようこちらをご利用下さい。
すみません。この投稿へのコメントが後になったので、他のトピックに直接返信してしまいました。temp アカウントで投稿されたコメントをすべてどこかにコピーしてからいろいろ作業してください。