• 締切済み

MySQL 5.0.41 のvarcharの文字数について(utf8の場合)

MySQL 5.0.41を使っております。正確には、Mac OS X上でMAMP ver 1.7を導入しております。この環境で、以下の文を実行すると、 show variables like 'character\_set\_%'; +--------------------------+--------+ | Variable_name | Value | +--------------------------+--------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | +--------------------------+--------+ です。ここで、質問なのですが、 フィールドの型としてvarchar(50)とすると、 全角文字が16文字しか入りません。 つまり、UTF8の全角1文字に対して3バイトとカウントしているためと思われます。つまりvarchar(50)と設定すると、 50/3=16.66.. なので、このvarchar(50)は、50バイトまでと設定していることになります。MySQL4.1以降は()の中身は文字数と聞いていたのに、 実際とは異なり、しっくりきません。この結果は正しいのでしょうか?

みんなの回答

  • agharta
  • ベストアンサー率52% (54/103)
回答No.1

カラムの属性にCHARACTER SETを入れてみてはどうでしょうか。 参考マニュアル http://dev.mysql.com/doc/refman/5.1/ja/string-type-overview.html

関連するQ&A