2009-09-09

忘れがちなこ

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バイトってのはそうした優性民族の文字だけだ。 こんなアジアの最果ての...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん