アプリ版:「スタンプのみでお礼する」機能のリリースについて

氏名を格納するmynameという項目があるとします。ここには
全角10文字まではOK、全角11文字以上ダメ、
という文字数制約を設けたいと思います。


MySQL側:
myname varchar(20) なフィールドをテーブルに作成し、

PHP側:
if (strlen($myname) > 20) {
echo "全角10文字までにしてください";
}

としました。

HTML側で、
「小泉純一郎」と入れたら、全角6文字なのに
「全角10文字までにしてください」と出てしまいます。


全角10文字まではOK、全角11文字以上ダメ、
とするには、
MySQL側:varchar(20)
PHP側:> 20
の数字をいくつにすればいいですか。
全角は2バイトだと思ってたのですが。

A 回答 (1件)

入力を受け付けている文字コードによります。


エンコードがUTF-8の場合なら、文字コードによって1~3バイトになります。(全角文字はほとんどが3バイトのようです。)

参考URL:http://q.hatena.ne.jp/1115052744
    • good
    • 0
この回答へのお礼

ann_dvさん、早速のご回答ありがとうございました。

大変勉強になりました。
素で悩んでいましたが、ご推察のとおりUTF-8なので
ご指摘の3バイト勘定でつじつまがあいました。

ありがとうございました。

お礼日時:2008/10/17 13:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!