プログラムでシフトJISで作成した

PHPで高崎などを旧漢字で入力した場合
文字化けをしてしまいます。
PHPのバージョンは4.3.11でphp.iniの
mbstring.internal_encoding はコメントアウトしています。
なるべくならphp.iniの設定は変えずに
文字化けを修正したいのですが
どうしたらいいのでしょうか???

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:PaulYamamoto No.1

回答回数113ベストアンサー獲得回数2

ポイント20pt

ini_setを使いましょう。


文字化けするのはフォームからの入力ですか?

PHPファイルに書かれている文字ですか?

DBからの出力ですか?

id:tech1

フォームからの入力で、ポストで受け取って

変数名に格納してその変数名を出力する時に

文字化けが発生します。

2005/12/13 16:00:39
id:okami3 No.2

回答回数7ベストアンサー獲得回数0

ポイント20pt

http://ns1.php.gr.jp/pipermail/php-users/2001-November/003373.ht...

[PHP-users 3365] mbstring��������.htaccess���ѹ������Ȥ��ε�����ˡ�ˤĤ���

php.iniで設定するものの中で、.htaccessで以下のように値を設定することが出来ます。


php_value [PHPディレクティブ名] [value]

php_flag [PHPディレクティブ名] [On|Off]

php_admin_value [PHPディレクティブ名] [value]

php_admin_flag [PHPディレクティブ名] [On|Off]


これだと、全体に影響することはなく設定値を変更できるかと思います。

id:tech1

php_value default_charset Shift_JIS

php_value mbstring.language Japanese

php_flag mbstring.encoding_translation On

php_value mbstring.http_input auto

php_value mbstring.http_output SJIS

#php_value mbstring.internal_encoding EUC-JP

php_value mbstring.internal_encoding SJIS

php_value mbstring.substitute_character none

と書いて見ましたけど文字化けします。

ちなみにPHPファイルはSJISです。

どうしたらいいでしょうか?

2005/12/13 16:04:42
id:PaulYamamoto No.3

回答回数113ベストアンサー獲得回数2

ポイント20pt

http://php.s3.to/man/ref.mbstring.html#ini.mbstring.http-output

マルチバイト文字列関数(mbstring)

これで試してみてください。


ini_set(’mbstring.language’,’japanese’);

ini_set(’mbstring.http_input’,’auto’);

ini_set(’mbstring.detect_order’,’SJIS,UTF-8,EUC-JP,ASCII,JIS’);

//下は実際の出力(charset)に合わせてください。

ini_set(’mbstring.http_output’,’SJIS’);


php.iniにすでに値が設定されていれば必要ありません。


あと、phpがmb_stringをサポートしてなければ意味がありません。

phpinfo()関数でご確認を

id:tech1

.htaccessで出来ました。ありがとうございます。

2005/12/13 16:59:52

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

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

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

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

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