[PHP-users 17134]Re: EUC-JPで特定の文字のエンコードがうまくいかない

ISHIZUKA,Takeshi meteor @ cds.ne.jp
2003年 8月 4日 (月) 19:02:45 JST


石塚です。

ソースコードが提示されていないので想像しながら話を進めますが、
多分Mb_Detect_Encodingが文字コードを判別できるだけの
情報が足りないのではないかと思います。

#詳しくは下記のURLなどを参考にしてみてください。
http://www.akita-noken.go.jp/provide/mc/whatNew/kanji/kanjiCode.html


私がこれを回避するためによく使う手段として、
<form>〜</form>に
---------------------
<input name='encoding' type='hidden' value='京'>
---------------------
というパラメータを一緒に投げてやって、スクリプト側で
---------------------
$s_Encoding = Mb_Detect_Encoding ( $_POST[encoding] );
---------------------
として文字コードを取得してやり、
---------------------
foreach ( $_POST as $s_Key => $s_Value ) {
  $_POST[$s_Key] = Mb_Convert_Encoding ( $s_Value, 
    'EUC-JP',
    $s_Encoding );
    //その他エスケープ処理したり半角カナを全角にしたり
}
---------------------
で文字コードを統一する処理をかましてます。
SJIS・EUC-JP・UTF-8で相互に渡し合っても問題を感じた事は無いので、
それなりに使えるやり方ではないかと思います。


実際に使うときは適当にwrapperを作って
---------------------
MY_CONVERT::doConvert();
---------------------
などで変換できるようにしてやると効率が良いかと思います。


-----------------------------------------------------
"ISHIZUKA,Takeshi" <meteor @ cds.ne.jp>
-----------------------------------------------------



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