[PHP-users 8339] 「ァー」が文字化けしてしまいます

ml php-users@php.gr.jp
Fri, 28 Jun 2002 15:39:29 +0900


いつもお世話になっております。
mlと申します。

過去ログを検索してみたのですが、該当するものを探せなかったので質問させて下さい

PHPでファイルをアップロードしてデータをSQLに登録するプログラムを作ったのですが、
ある特定の文字が文字化けしてしまいます。

その特定の文字は「ァー」です。(全角です)
これが半角カタカナだと文字化けしませんでした・・
この「ァー」が「ゼ」になってしまいます。

簡単なソースです
-----------------
ファイルを受け取る処理・・・・
SQLに接続・・・

# $o_nameに「ァー」が含まれる文字が入ってます

$o_name = i18n_convert($o_name, "EUC-JP", "SJIS");
$o_name = ereg_replace("\r\n|\n|\r| | |\t", "", $o_name);
$o_name = i18n_ja_jp_hantozen($o_name, "KVrn");

$insert = "insert into $table_cli (tok_no, tel, o_name, return_type, return1, return2, id_pass) ";
$insert .= "values ('$tok_no', '$tel', '". addslashes($o_name). "', '$return_type', '$return1', '$return2', '$id_pass')";
$in_code = pg_exec($connect, "$insert");

pg_exec($connect, "end");
pg_close($connect);

---------------

といった感じのプログラムです。
アップロードファイルの中身はSJISで書かれています。
日本語を使うのは[$o_name]だけです。それ以外は英数字。

PHPを使わずに直接SQLに登録した場合は文字化けしなかったので、PHPが怪しいです・・

取り合えず試してみたのは・・・
・$o_name = i18n_ja_jp_hantozen($o_name, "KVrn", "EUC-JP"); # 文字化けしました
・addslashes($o_name) ⇒ $o_name # 文字化けしました。

バージョンは
PHP Version 3.0.18-i18n-ja-3
PostgreSQL 6.5.2

原因をご存知の方がご教授頂けないでしょうか?