- 締切済み
POST文字列が化ける(外字)
以下の環境で、システムを開発しています。 OS = Windows2000 SP4 Apache = 2.0.58 PHP = PHP 5.1.6 magic_quotes_gpc = Off mbstring.language = Japanese mbstring.internal_encoding = SJIS mbstring.http_input = auto mbstring.http_output = SJIS mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none; このような設定で、コードはSJISで書いています。 外字エディタで外字が登録してあります。 この外字をフォームから、POSTで受取たいと思っています。 さきほども似たような内容で質問しました。 その後、いくつか分かったことがあるので、質問しなおします。 POSTする文字列が、 ・外字一文字の場合 ・先頭が外字の場合 は、化けないことが分かりました。 つまり、なんらかの文字列の間に文字列が入ると化けるのです。(化けないこともあります。)たぶん周りの文字を巻き込んでしまうのだと思います。 何か解決方法に心あたりないでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- fdsjaklfjas
- ベストアンサー率81% (96/118)
外字(ユーザ定義文字)は、SJISではサポートされていません。 (SJIS-winというエンコーディングではサポートされています)。 ですので、その環境ではうまくいかないと思います。うまくいくケースがあったとしても、たまたまです。 恐らく、入力時・出力時に文字コード変換をしないよう、PHPを設定するのが良いと思います。 #「PHP 絵文字 携帯」などのキーワードでネット検索すると、PHPで外字を扱うための情報が得られるかもしれません。
お礼
回答ありがとうございます。 フォームに enctype="multipart/form-data" をつけることで、何とかなりました。