質問

Multibyte String(例:CJKスクリプト)を処理するために、PHPにマルチバイト文字列関数があります。たとえば、マルチバイトの文字列にある文字列の数を使用して数えたいと思います。 len Pythonで機能しますが、不正確な結果を返します(つまり、この文字列のバイト数)

japanese = "桜の花びらたち"
print japanese
print len(japanese)#return 21 instead of 7

PHPにMB_STRLENのようなパッケージや機能はありますか?

役に立ちましたか?

解決

使用する ユニコード文字列:

# Encoding: UTF-8

japanese = u"桜の花びらたち"
print japanese
print len(japanese)

注意してください u 文字列の前に。

バイテストリングをUnicodeに変換するには、使用します decode: "桜の花びらたち".decode('utf-8')

他のヒント

に変換してみてください unicode 最初:

print len(japanese.decode("utf-8"))

7を与えます。あなたは、実際に21バイトのUTF-8エンコードされた文字列で作業しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top