人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

windows xp / windows 7 で、xamppを入れて、php がutf-8 oracleがsjis で
接続したところ、oracleからデータを取得した文字が、文字化けしています。
linux (centos)では、 php utf-8 oracle sjis でも文字化けしませんでしたが、
windowsで文字化けして困っています。
windowsでも動かすにはどのようにしたらよいでしょうか。。

●質問者: FujiiRock
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● うぃんど
●200ポイント ベストアンサー

どのようなセッティングを行ったのか判りませんが、
WindowsとCentOSでクライアントのキャラクタセットのデフォルトが違うというのが原因でしょう。

クライアントのキャラクタセット変更はNLS_LANGで、UTF8に設定します。

NLS_LANGの詳しい説明や設定方法は下記にあります。
(どれも重要なことばかりなので抜粋しません。参照してください。)
恒久的変更はレジストリ変更になりますが、システム変数でもセッティングできますので、まずはシステム変数にセットして再起動してみると良いでしょう。
http://otndnld.oracle.co.jp/tech/globalization/htdocs/nls_lang%20faq.htm#_Toc110410552

時間があればこちらも…。
http://docs.oracle.com/cd/E16338_01/server.112/b56307/ch2charset.htm#i1006750


うぃんどさんのコメント
修正箇所が多くなるかもしれない(デバッグやメンテの時に困る)し処理時間も気持ち長くなる(遅くなる)ので書かなかったのだけど、php側でmb_convert使って変換するという手もなくはないですね。

2 ● oil999
●0ポイント

PHP側でNLS_LANG変数を設定してみてください。

putenv('NLS_LANG=Japanese_Japan.JA16SJIS');
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ