ちと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