2018年3月22日木曜日

mb_strlen 1文字3バイトになる・他

PHPの mb_strlen関数で、 1文字3バイトになる


(参考)
http://hamamuratakuo.blog61.fc2.com/blog-entry-421.html

● 文字のバイト数は、文字コードごとに異なる

 Shift_JIS : 半角文字・1バイト、全角文字・2バイト
 UTF-8 : 半角文字・1バイト、全角文字・ 2-6バイト


● 解決策 : UTF-8をSJISに変換して、文字数をカウントする

 strlen(mb_convert_encoding($str, 'sjs', 'utf-8'))



● mb_strlen を正確に動かすには

 php.iniで内部エンコードを正しく設定するか、mb_stringで文字コードを指定する。

 ・ php.iniで文字コード指定
  ;mbstring.internal_encoding = EUC-JP


 ・ mb_string の第2パラメータでエンコーディングが指定できる。
  (省略した場合、内部エンコーディングを使用)
  mb_strlen($str,'utf-8')

0 件のコメント:

コメントを投稿

BloomというAI

オープンソースのAI「BLOOM」が出ました。 日本語も使えるというので、早速サンプルページで遊びました。 白い文字が私。ピンクの文字がAI。 ↑AIとやりとり できたのが、これ。AIとの合作超短編童話😆 『 傘をさして公園を歩いていたら、小さなリスが足...