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

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

  • Posted by: zaru
  • 2007年4月11日 14:53
  • 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:3

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

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

ZARU 2007年7月16日 16:15

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

2009年1月 9日 03:44

数字はint型なので
mb_substr($str,"0","10");
より
mb_substr($str,0,10);
のほうが正しいと思います。

Comment Form

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編

Profile

zaru

Name : zaru

Webプログラマ+Webデザイナで、Webディレクタやってます。Twitterやっているので、ぜひフォローしてやってくださいませ。Twitter - zaru。また、そのほかのプロフィールについては、iddy - zaruを見てください。

Search
Feeds
Others

Return to page top