mysql4.0+PHP4でvarchar(30)にUTF-8のカタカナ11文字+記号が入らないバグがでた
文字が勝手に切り捨てられて、格納された文字が10文字
定義変更してvarchar(120)にすればデータが入ったのでPHPサイドのバグじゃない
文字が勝手に切り捨てられる理由が良くわからない
よくよく考えてみたらUTF-8で保存していた
ああ、UTF-8は可変長だすっかり忘れてたよ
UTF-8って3バイト文字が多かったような、でもカタカナも3バイトだっけ?
調べると全角ひらがなカタカナは2バイトで漢字が3バイトのはず…
けれどもためしにテキストファイルに"ア"って入れて保存したら6バイト
うーん、簡単にはいかない様子
おまえはアホだな。 Unicodeってのは、ヨーロッパ付近の優性民族の文字が先頭の方に割り当ててある。 UTF-8で2バイトってのはそうした優性民族の文字だけだ。 こんなアジアの最果ての...