[PHP-users 27299] Re: mb_strwidth() の結果が期待と異なる

Shu Sawada luna @ lunanet.gr.jp
2005年 10月 25日 (火) 16:17:14 JST


さわだです。
桝形さん、ありがとうございます。

>   $string = "99条99丁目1−11";
>   $enc    = "eucJP-win"; // ←←←←←←←← ココ
>   mb_internal_encoding($enc);
> 
>   print "mb_strwidth(): " . mb_strwidth($string, $enc) . "\n";
>   print "mb_strlen(): " . mb_strlen($string, $enc) . "\n";
> 
> としてみたら、どうでしょうか。「eucJP-win」が重要です。

上記のようにeucJP-winを指定すると、期待した結果を得られました。
EUC-JPの場合のみがまずいのでしょうか。

これって、PHP4.3.11以降(?)はEUC-JPではなくeucJP-winを使うのが
無難という事になりますか?
EUC-JPで僕の期待通りに動かないというケースがmb_strwidth()だけで
あれば、EUC-JPでも良いのかなと思うのですが、他のmb_系関数も
何かあったりするのでしょうか。

また、僕はそもそもeucJP-winの何たるかをちゃんと理解していないのですが、
(機種依存文字を扱える、ぐらいしか知りません)
mbstring周りの設定をEUC-JPの代わりにeucJP-winとして統一して、問題は
無いものなのでしょうか。


質問ばかりで申し訳ありません。
ご存知の方、ご教示いただけないでしょうか。
文字コードがらみについては、ポインタだけでも結構です。

何卒宜しくお願いいたします。

-- 
Shu Sawada
http://luna.lunanet.gr.jp/


PHP-users メーリングリストの案内