人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: tech1
●カテゴリ:就職・転職 コンピュータ
✍キーワード:PHP コメントアウト シフトJIS バージョン プログラム
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● Paul
●20ポイント

http://php.s3.to/man/function.ini-set.html

ini_set

ini_setを使いましょう。


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

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

DBからの出力ですか?

◎質問者からの返答

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

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

文字化けが発生します。


2 ● okami3
●20ポイント

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]


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

◎質問者からの返答

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です。

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


3 ● Paul
●20ポイント

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()関数でご確認を

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ