[PHP-users 33206] PHP5+MSSQLSERVER2005での中国語の取得について
"成田 実"
narita @ sri-net.jp
2008年 1月 30日 (水) 23:55:21 JST
成田と申します。
お世話になっております。
現在、以下の環境で開発を行っております。
Windows Server 2003
HTTPD2.2系の最新
PHP5.2系の最新
MS SQLSERVER 2005
文字コード UTF-8
1.中国語の文字列を扱うためにテーブルにnvarchar型のカラムを作成
(中国語文字列がカラムに正しく登録されていることは確認済み)
2.PHPをUTF-8にて記述して、上記カラムの抽出
3.画面に表示すると文字化けしている
いろいろと調べてみたところ、
抽出された文字列がSJISであるため
UTF-8への変換が必要であることがわかりました。
確かに、UTF-8への変換を行ったところ、
日本語文字列の表示は正しく行えたのですが、
中国語文字列の表示は一部が「?」で表示されました。
抽出した結果がSJISであることから
SJISにない中国語文字が化けてしまい、
UTF-8に変換しても「?」になっているのだと思います。
試しに、データベースへの接続を思い当たる3つの方法
・mssql関数
・PDO_ODBC
・ADBdb
にて行ってみましたが、どれも同じ結果になりました。
どのようにすればMS SQLSERVERのnvarchar型のカラムの
文字列をunicodeで抽出することができるのでしょうか。
もしくは、
他の方法で中国語データの保持、ブラウザ表示が正しく行えるのであればご教授願います。
PHP-users メーリングリストの案内