• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:全角半角あわせて3文字)

全角半角が混在している文字列の左から3文字を取得したい場合にいい方法はないでしょうか?

このQ&Aのポイント
  • mb_substr関数で最大3文字を切り出す方法がありますが、全角と半角ではバイト数の計算が異なるため、注意が必要です。
  • 英数字も含まれる場合は、元の文字列を壊さずに切り出すことができる方法を模索しています。
  • スマートな方法があれば、教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

ファイルの文字コードと、mb_internal_encodingとmb_substrの指定文字コードを あわせてください バイト数ではなく文字数だとわかると思います <?PHP mb_internal_encoding("UTF8"); $str="abcあいうxyz"; $substr=mb_substr($str,2,3,"UTF8"); print $substr; ?>

ts3m-ickw
質問者

お礼

回答ありがとうです。 あれ‥‥? エンコード指定はあってるはずなのに、あってない? : : ホントだ、あってなかった。あれー? なぜ? すみません、ちょっと間抜けな自分に気が付いてしまいました。 ベストアンサーに選ばせてもらいます。

その他の回答 (1)

noname#242220
noname#242220
回答No.1

PCは『半角文字(一バイト)』の世界です。 文字コードを『ユニコード表記』にすれば取得出来るのでは?

ts3m-ickw
質問者

お礼

素早い回答をありがとうです。 おお、エンコードを変える発想はなかった‥‥UTF-32なら固定長でしたね。 BOMだけ考慮しておけば簡単にできそうな気がしてきました。 ちょっと試してみます。

関連するQ&A