[PHP] strlen 関数で日本語の長さを取得する際に文字コードが UTF-8 の場合1文字3バイトになる

そういえば最近気付いたんですが、PHP の strlen 関数で日本語の長さを取得する際、文字コードが UTF-8 の場合1文字3バイトになるんですね。でも確実に3バイトになるってわけでもなくて、マルチバイトって面倒くさいですね。

で解決策がここで検討されてました。
日本語文字列のバイト数取得にstrlenだけではダメな理由-PHP – CPA-LABテクニカル

まだ読んでないですけど…。今のところ私は1文字3バイトという設定で、マルチバイト文字が含まれている場合だけ文字上限を3倍にしちゃったり適当なことしちゃってます。でもこうすると「あ」って書いたあと半角英数字で3倍の文字かけるようになってしまいますね。でもそういう人は攻撃しかけようとしてる人だと思うからいいや。

コメント

コメントは受け付けていません。