[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 メーリングリストの案内