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