日本PHPユーザ会 掲示板

日本PHPユーザ会運営の掲示板です。※ただいまテスト運用中です。

日本PHPユーザ会 掲示板 » PHP事はじめ » mb_strimwidthでの丸め時の文字化け

mb_strimwidthでの丸め時の文字化け

ページ: 1

投稿者 投稿
会員
登録者: 9 2008
返信数: 1
現在、以下のような現象にて躓いております。
お分かりになる方がいらっしゃいましたら、よろしくお願いいたします。

$str = "ああああuああああ";

print(mb_strimwidth($str,10,20));

上記で半角文字列の次の文字の2バイト目(9バイト目からを指定すると、うまく行きます)
を指定すると、取得した文字列が文字化けを起こしてしまいます。

マニュアル等をみると、全角文字の2バイト目を指定しても、全角の1バイト目から取得するように書いてありますが
うまくいきません。

php.iniやバッチなどの対応が必要なのでしょうか?

環境は
PHP 5.2.3
仕様文字内部コードはEUC-JP

です。
会員
登録者: 10 2007
返信数: 71
テスト文字列を
$str = "あいうえuかきくけ";
で確かめていただきたいのですが、ほとんどのマルチバイト関数での文字列位置や長さはバイト単位ではなく文字数単位で指定するものだと思います。
私が知っている限りではバイト単位で指定できるのはmb_strcut()ぐらいではないかと思います。
全角1文字=2バイトではないということですので、このような仕様になっているかと思います。

私が質問の意味を間違えていたらごめんなさい。

ページ: 1

日本PHPユーザ会 掲示板 » PHP事はじめ » mb_strimwidthでの丸め時の文字化け

日本PHPユーザ会 掲示板 は UseBB 1 フォーラムソフトウェア を使用しています