phpのmb_convert_encodingでutf-8からgb2312に変換したいと考えています。


utf-8で書かれたページのフォームから入力し、gb2312で書かれたページに文字を表示したいのですが、一部の文字が化けしてしまい読めません。 なにか特殊な方法を使わないといけないのでしょうか? いろいろ調べてみたのですがどうしてもわからなかったので質問いたします。 方法をご存知の方アドバイスよろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/03/04 14:32:40
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:GEN111 No.1

回答回数472ベストアンサー獲得回数58

ポイント60pt

.htaccess に

php_value mbstring.internal_encoding "UTF-8"

の一行を加えてみてはいかがでしょうか。

id:mayo33

お返事ありがとうございました。

早速おしえていただいた一行を追加してみましたがうまくいきませんでした。

漢字が「?」になったり、「ー」が「0?A9%60」 に変更されてしまいます。

他の文字コード(EUCやSJIS)ではうまくいくのですが。。


コメントありがとうございます。 教えていただいた方法で文字は化けずに表示されました。 これをうまくgb2312にエンコードしたいのですがそれは無理でしょうか?

2007/02/28 15:31:51
  • id:GEN111
    いろいろ試してみましたが、そのまま変換する方法は見つかりませんでした。

    $converted = mb_convert_encoding($_POST['text'], 'HTML-ENTITIES', mb_internal_encoding()) ;

    ↑こんな感じでとりあえず表示はできると思いますが。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません