スレッド表示 | フラット表示〕 全トピック 920 件中 410 番目 次≫ ≪前

漢字が消える

created: 2005-07-14 23:24 | modified: 2005-07-15 11:28 | reply: 2

[2377] 漢字が消える

user: uk | created: 2005-07-14 23:24
はじめまして。ukと申します。
htmlのフォームから、'全'という漢字のみをPOSTで送り
PHPのechoで表示させようとしたところ、なぜか漢字が消えています。
xdebugを使ってPOSTの値を見たところ、PHPページに渡ってきた時点で消えているようです。
原因がまったく見当もつかないのですがどなたかご教授いただけないでしょうか?

設定は以下のとおりになります。
PHP:5.0.4
HTMLの文字コード:EUC
PHPスクリプトファイルの文字コード:EUC
mbstringの設定
mbstring.language = Japanase;
mbstring.internal_encoding = EUC-JP;
mbstring.http_input = auto;
mbstring.http_output = EUC-JP;
mbstring.encoding_translation = On
reply: 2378 返信 編集 削除

[2378] 文字コードの検出に失敗

user: | created: 2005-07-15 01:35
こんにちは。
私もつい最近、同様の症状に悩まされました。
「全」が消えるだけでなく、「鳥」「猫」「表」「予」「能」
など(一文字だけ)だと文字化けしませんか?

私の場合、レンタルサーバのPHPのバージョンが上がって(4.3.11)、
それまで正常にsubmitされていた文字が化けるようになりました。

新旧のphpinfoを参照してみると、http入力文字コードの
判別が、

mbstring.http_input = no value
だったものが、

mbstring.http_input = auto
に変わっていました。

「auto(自動検出)」になって、文字コードの検出に失敗する
ケースが出るようになったみたいです。
no valueだと、送信元コードとスクリプト内部コードは同じと
見なして処理していたみたいです(??想像です)

送信元htmlと処理側スクリプトとの文字コードを統一する
ことが出来るなら、
mbstring.http_input = NULL
あるいは、
mbstring.http_input = EUC-JP
とすることで解決すると思います。

--------------------

私の場合、php.iniをいじるのがややこしい(レンタルサーバのため)
ので、別の対策を取りました。

送信されてくる日本語文字列の中に、適切に検出するための日本語が
足りないと失敗するので、適当な日本語を追加して送信して
やると上手くいきました。
送信元フォームの中に

<input type="hidden" name="" value="あいう">

という一行を挿入してやると、受け手側で上手く文字コードを
検出してくれるようになりました。

--------------------

私の取った対策は赤マンモス本にも書いてあったのですが、
なんとなくその場しのぎっぽい感じがしないでもありません。

より詳しい情報や、適切な対処法をご存じの方がいらしたら
追加レス、よろしくお願いします。
Parent: 2377  reply: 2381 返信 編集 削除

[2381] できました!

user: uk | created: 2005-07-15 11:28
箱様
貴重な情報ありがとうございます。

お教えいただいた
・mbstring.http_inputの設定変更
・HIDDENを使用
二つとも試してみたのですが両方とも上手くいきました。
私の場合ローカル環境にサーバを立てていましたので
php.iniの設定を変更して対応したいと思います。

文字コードによる問題には結構悩まされていますので
もしその他の対象方法などがありましたら
是非お教えいただければと思います。

ありがとうございました。
Parent: 2378  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 410 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑