Home > PHP > 2バイト文字列を文字化けせずに切り抜く方法 - PHP編

2バイト文字列を文字化けせずに切り抜く方法 - PHP編

  • Posted by: ZARU
  • 2007/04/11
  • PHP

長い文字列を適当な長さに揃えて出力したいときに、2バイト文字と1バイト文字が入り混じっていると、中途半端に文字がカットされ、文字化けしてしまうのを防ぐ方法。

//文字コード設定
mb_language("Japanese");
mb_internal_encoding("EUC");

$str = 'あいうえおAbcdかきくEfghけこさしすせそ';

//最初から10文字を切り抜く
$str = mb_substr($str,"0","10");

mb_substr() だけだと文字コードをきちんと認識せず語尾が文字化けしてしまったので、mb_language() と mb_internal_encoding() を使ってきちんと設定すると綺麗に切り抜ける。


Comments:2

コメントフォーム:コメントはお気軽にご利用くださいませ。

画像の中に見える文字を入力してください。

通りすがり 2007年7月15日 10:25

上の方法でも綺麗に切り取れませんでした。
やはり、中途半端に切り取られ「1あいうえお・」と入ります。 最後には「・」が入りますね。

ZARU 2007年7月16日 16:15

コメントありがとうございます。
あれ、おかしいですね。僕の環境ではこれで奇麗に切り取れるんですが…。PHPファイルの文字コードと mb_internal_encoding は合っていますかね?
内部エンコードの設定を確認してみると良いかもしれません。

Trackbacks:0

TrackBack URL for this entry
http://blog.tofu-kun.org/mt-tb.cgi/304
Listed below are links to weblogs that reference
2バイト文字列を文字化けせずに切り抜く方法 - PHP編 from Webプログラマー+WebデザイナーなZARU日記

Home > PHP > 2バイト文字列を文字化けせずに切り抜く方法 - PHP編

ブログパーツ
Search
Feeds

Return to top