質問です。

PHPで問い合わせフォームを作りました。
フォームから問い合わせを受信すると文字化けしてしまいます。
SHIFT JIS
JIS
EUC-JP
などは皆さんどれをおつかいでしょうか?教えて下さい。
宜しくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/06/07 20:21:53
  • 終了:2007/06/14 20:25:04

回答(5件)

id:kn1967 No.1

kn1967回答回数2915ベストアンサー獲得回数3012007/06/07 20:54:59

ポイント20pt

http://ja.wikipedia.org/wiki/EUC-JP

WEBサーバーのシェア的にはUNIX系が大勢を占めているので

出来ればEUC-JPに統一したいところではあるのですが

開発環境としてはWindowsが多いので実情はShift-JISで書く事が多いです。

(Windows上で動くエディタでもEUC-JPに対応したものは多いのですが

作業する全ての環境にある訳でもないので・・・)


以上のような簡単な回答でよろしいのでしょうか?

プログラムソースで使うコードと

データベースで使うコードは何をお使いでしょうか?

といったような形式のアンケートを取った方が安上がりだったのでは・・・?

id:tezcello No.2

tezcello回答回数457ベストアンサー獲得回数682007/06/07 21:11:33

ポイント20pt

PHPの内部処理エンコード、httpdのヘッダ情報、実際に出力しようとしている書類のエンコード、PHPがhttp入出力する際の自動変換などが絡み合ってきます。

僕はスクリプトの始めの方で

set_magic_quotes_runtime(false);

ini_set('mbstring.http_input', 'pass');

ini_set('mbstring.http_output', 'pass');

mb_language('ja');

mb_internal_encoding('UTF-8');

mb_regex_encoding('UTF-8');

を決り文句としていれています。

UTF-8にしているのは、最近XMLを扱う事が多いからで、サーバマシンのロケールに従って設定するのが良いかも知れません。

(例えば、EUCとか)


それぞれの内容はこちらを参考にどうぞ。

http://www.php.net/manual/ja/ref.mbstring.php

以下の値が影響するそうです。

mbstring.language

mbstring.detect_order

mbstring.http_input

mbstring.http_output

mbstring.internal_encoding

mbstring.script_encoding

mbstring.substitute_character

mbstring.func_overload

mbstring.encoding_translation

mbstring.strict_detection

追質問があるようでしたら、回答受付中でもコメントをつけられるようにしていただけるとありがたいです。

回答制限に関係なくお答えできますので。

id:OhYeah No.3

オーイェー回答回数81ベストアンサー獲得回数142007/06/08 00:47:27

ポイント20pt

UTF-8です。

私は、サイトをXHTMLで記述しているのですが、

DOCTYPEスイッチのために、XML宣言を省略しています。

ということで、PHPやMySQLなどもあわせてUTF-8を使用しています。

http://w3g.jp/others/data/doctype_switching

id:onigirin No.4

onigirin回答回数327ベストアンサー獲得回数232007/06/08 08:44:56

ポイント20pt

ヤフーに合わせてEUC-JPにしています。

http://www.yahoo.co.jp/

id:Yota No.5

Yota回答回数453ベストアンサー獲得回数282007/06/08 09:29:17

ポイント20pt

WEBページ上でのエンコーディングは日本人の場合、

1.SJIS

2.UTF-8

3.EUC-JP

に絞られると思います。多分一番人気が高いのが1だと思います。

MicroSoftの洗脳(?)が効いたせいで。

どれを使ってもいいと思いますが、PHPの場合スクリプトの先頭に

mb_internal_encoding('UTF-8') ;

mb_http_output('UTF-8') ;

のようにするか、php.iniに書くことによって決めてやらないといけません。

http://www.php.net/manual/ja/function.mb-http-output.php

ただWEBサーバのほうでhttpヘッダにencodingを指定するようになっていればそちらが勝ります。

たとえばApacheなら

AddDefaultCharset Shift_JIS

とhttpd.confに書いてある場合などです。

http://httpd.apache.org/docs/2.2/ja/mod/core.html#adddefaultchar...

あと、httpヘッダで明確に規定しないときはブラウザが判断ミスすればどんなに正しい文字コードを送り出しても、化けて見えます。

コメントはまだありません

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません