[PHP-users 9449] Re: 文字encord 設定

php-users@php.gr.jp php-users@php.gr.jp
Thu, 22 Aug 2002 14:37:19 +0900


アドバイスありがとうございます。

> > ◆疑問点1
> > HTMLを文字コードEUCで作成し、phpのすくりぷとを埋め込みファイルを作成して
いま
> > す。
> > テーブル内の値を取得し表示させていると同時に、HTMLのformで
> > <input type="text" name= ・・・>
> > <textarea name="xxx"></textarea>
> > を利用しブラウザから入力した文字をpostし処理もしています。
> > HTMLのMETAタグで言語、エンコードはそれぞれ "ja" 、 EUC_JP です。
> > PostgresのエンコードはEUCです。
> > このとき Windows版IE5.5、Netscapeでは文字化けはおきません。
> > ですが、macOSのIEで<input type="text" name= ・・・>部分に文字を入力した
とた
> > ん
> > 日本語の場合文字化けをおこします。テキストボックスのなかで意味不明の未変
換の
> > 文字列が並んだ状態になります。Mac版Netscape4.7ではこの現象はおきません。
>
> macOSのIE は使ったことがないので一般論ですが。
>
> <input type=hidden name=checkencoding value="長い日本語文字列。。。">
> を入れて置いて、この POST 値を、
> mb_detect_encoding
> jstr_discover_encoding
> i18n_discover_encoding
> などで、encoding を判定して、mb_convert_encoding などで、
> ENCODE を指定して明示的漢字コード変換をしたらどうなるで
> しょうか。
>
> 数文字程度の短い文字を入力させるときの漢字コード
> 判定ミスを防ぐのが目的なので、外しているかもしれ
> ませんが。

  この方法はPOSTしたあとで文字化けしてしまう場合の判断材料になりそうです
ね。
  #これはメモしておきます。ありがとうございます。
  今のケースですが、POST以前に文字をテキストボックスに入力したときに起こる
ので
  (疑ってはいけないのですが)クライアント側になにかあるのか?と思ったりも
します。
  ただ困ったことに、一台のMacOSでしか試していないので、同じOS+ブラウザで
必ず
  起こる現象なのか?という判断ができません。この現象がおきた時、当該機のブ
ラウ
  ザの文字設定が欧文(Latin1)になっていたということです。
  明示的にmb_languageなども記述してみたのですが現象は変わらずです。
  この現象はクライアント様の報告のみで実際に見ていないということもあり、原
因と対策
  にはなかなかいたらず困っています。
  似たようなトラブルにあった方解消された方いらっしゃいませんでしょうか?



> 8月27日勉強会の題材のプログラムの 3730 行目あたり
> でこういった処理をしています。ご参考まで。
>
> http://www.postgresql.jp/subcommittee/ap/
>
>
> > ◆疑問点2
>
> これは、三村さんのフォローの通り。
>
> この問題と関係ないかもしれませんが、php.ini の
> 大部分の値は、set_ini() 関数で変更可能です。
> 詳しくは、マニュアルを見てください。

  →  ありがとうございます。