[PHP-users 28167] Re: PDO での文字化けについて

ikutirin ikutirin @ yahoo.co.jp
2006年 1月 19日 (木) 15:04:17 JST


ハタ(nowel)様、有益な情報ありがとうございます。

しかし、現象は変わらずです(;o;)

>Oracle 10g(R2だったのですが)で以下のSQLを発行してくだ>
さい。
>"SELECT VALUE FROM NLS_DATABASE_PARAMETERS
>WHERE PARAMETER='NLS_CHARACTERSET'"
AL32UTF8となっていましたので、
mbstring.internal_encoding = AL32UTF8
としましたが文字化けはなおりませんでした。

システム環境変数に
NLS_LANG=JAPANESE_JAPAN.JA16EUC
と設定して、
mbstring.language = Japanese
mbstring.encoding_translation = On
mbstring.http_input  = pass
mbstring.http_output = EUC-JP
mbstring.internal_encoding = JAPANESE_JAPAN.JA16EUC
mbstring.language = Japanese
として、プログラムコードの文字コードをEUC-JPに変換して
みたりしたのですが、変わりませんでした。
(Windowsの再起動、Apacheの停止、起動は行いました。)

何か他に試すことはありますでしょうか。
お願いします。

--- Yusuke Hata <nowel @ xole.net> からのメッセージ:
> ハタ(nowel)です。
> 
> 私も似たような症状だったのですが
> PDOの問題ではなく、文字エンコードを変更することで対処
した記憶があります。
> # クライアントはlinux
> 
> Oracle
> 10g(R2だったのですが)で以下のSQLを発行してください。
> "SELECT VALUE FROM NLS_DATABASE_PARAMETERS
> WHERE PARAMETER='NLS_CHARACTERSET'"
> 
> mb_internal_encodingで上記の結果のエンコードで直ると思
います。
> また、環境変数(Linuxの場合)NLS_LANGを正しくセットする
とsqlplusでも文字化けは対処できました。
> 
> クライアントがwinなら話は別かもしれませんが参考にして
ください。
> 
> また「Do You
> PHP」さんに似たような記事があったので参考になると思い
ます。
> http://www.doyouphp.jp/inst/inst_unix_dso_430_ic.shtml
> 
> 06/01/17 に <ikutirin @ yahoo.co.jp>
> さんは書きました:
> > いくちんと申します。よろしくお願いします。
> >
> > 現在、
> > Win XP Pro
> > Apache 2.0.54
> > PHP 5.1.2
> > Oracle 10g
> >
> でPDOを使用してデータの登録・更新・検索・削除といった
処
> > 理を勉強がてら作成しています。
> > (データは名前とメールアドレスの2つだけ)
> >
> > そこで、登録処理を以下のように実装しておりまして、
> > $db = new PDO("oci:dbname=orcl", "scott",
> "tiger");
> >
>
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
> > $db->beginTransaction();
> >
> > $pName = "名前"
> > $pMail = "test @ test.com"
> > $stt = $db->prepare("insert into sample values(?,
> ?)");
> >
> > $stt->bindValue(1, $pName, PDO::PARAM_STR);
> > $stt->bindValue(2, $pMail, PDO::PARAM_STR);
> >
> > $stt->execute();
> > $db->commit();
> >
> > 正常に登録できるものの登録データは化け化けです。
> > (「ク[?」こんなデータです。)
> > コード自体はShift-JISで書いています。
> > ためしに、
> > $stt = $db->prepare("insert into sample
> > values('".$pName."','".$pMail."')");
> >
> とやってみると、文字化けせずに登録することができました
。
> >
> > 何故、化けてしまうのかわからず、手詰まり状態です。
> > お助けください。
> > お願いします。
> >
> >
> >
> > --------------------------------------
> > GANBARE! NIPPON!
> > Yahoo! JAPAN JOC OFFICIAL INTERNET PORTAL SITE
> PARTNER
> > http://pr.mail.yahoo.co.jp/ganbare-nippon/
> > _______________________________________________
> > PHP-users mailing list  PHP-users @ php.gr.jp
> > http://ns1.php.gr.jp/mailman/listinfo/php-users
> > PHP初心者のためのページ -
> 質問する前にはこちらをお読みください
> > http://www.php.gr.jp/php/novice.php3
> >
> 
> 
> --
> Yusuke Hata <nowel @ xole.net>
> blog: http://blog.xole.net/
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ -
> 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3
> 

--------------------------------------
GANBARE! NIPPON!
Yahoo! JAPAN JOC OFFICIAL INTERNET PORTAL SITE PARTNER
http://pr.mail.yahoo.co.jp/ganbare-nippon/


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