プロが教えるわが家の防犯対策術!

MySQL4.0.24+PHP4.3.11(Linux環境)で、日本語(EUC)と中国語(BIG5)の混在したデータベースを制作しています。

具体的には、中国の施設の固有名称を
中国語、日本語、英語表記で管理画面から登録します。管理画面は3言語が同時に表示される様にUnicodeでページを作成。MySQLへもUnicodeのまま保存しています。

MySQL上では、どの言語も文字化けせず表示されています。

MySQLからデータを参照し表示するページでは、日本語ページでは日英語のみ、中国語ページでは中英のみの表示であり、他にも理由があって、取り出したデータをmb_convert_encodingでEUC-JPやBIG-5へ変換して表示したいと思っています。

日本語への変換は、EUC-jpへもShift-JISへも問題なく出来、表示がされますが、中国語に関しては日本語と同じ漢字の部分は変換されるのですが、日本語にない漢字の部分が??として表示されてしまいます。

PHPインストール時に
--enable-mbstring=twも追加し、

mbstringの設定を確認しても
Multibyte Support enabled
Japanese support enabled
Traditional chinese support enabled
Multibyte (japanese) regex support enabled
となっています。

他に確認すべき項目などもあるのでしょうけど、マルチバイト対応状況はバージョンが変わるとだいぶ変わっていたりして、検索してもなかなか情報が得られなかったので質問させて頂きました。

A 回答 (2件)

実際のコードを見せて頂ければと思いますが。


私の経験からですと。
マルチバイト文字列関数を使用する前に
日本語だと通常は何もせずにマルチバイト文字列関数を使用できますが、まれに以下のようにコードで
明示的に宣言する必要がありました。
貴殿の場合ですと混在するページとのことなので
japanese部分を書き換えてみてはいかかでしょう?
mbstring.language=Japanese
    • good
    • 0
この回答へのお礼

ご指導ありがとうございました。
間接的に現場から状況を聞いていたので気づかなかったのですが、よくチェックしたら簡体字で入力したものを繁体字(BIG5)に変換していたことが分かりました。
正しい文字を入れ、正常に動きました。
ありがとうございました。

お礼日時:2005/07/08 04:33

補足です


マニュアルはご覧になられましたか?
http://php.s3.to/man/ref.mbstring.html

参考URL:http://php.s3.to/man/ref.mbstring.html
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!