ブックマーク / zigorou.hatenablog.com (1)

  • varcharとutf8 - 日向夏特殊応援部隊

    ちとvarcharのutf8を誤解してました。 CREATE TABLE bar ( id int(11) NOT NULL default '0', name varchar(4) default NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8こんな風にテーブル作った際に、マルチバイトだろうが半角英数字だろうが4文字と扱われます。 てっきりバイト換算だと思ってた。 ヒント:スペースを UTF8 で保存するには、CHAR ではなく VARCHAR を使用してください。 そのようにしないと、MySQL では CHAR(10) CHARACTER SET utf8 カラムに対して 30 バイトを確保しなければなりません。これは、使用可能な最大長が 30 バイトであるためです。 これが多分ソースかなぁ。 #!/usr/bin

    varcharとutf8 - 日向夏特殊応援部隊
    nmti
    nmti 2011/06/23
  • 1