
現在、画面がSJISで作成されており、スクリプトはUTF-8で作成されています。
画面から来るデータを全て自動的にUTF-8に変換し、スクリプト上で処理し、
最後に自動的にSJISに変換し直して画面へ出力しています。
しかし、半角カナだけの文字列が画面から渡ってきた場合、
文字エンコーディングした瞬間、化けます。
全角文字を含んでいれば問題ないのですが・・・。
化けてしまう為、スクリプト内で既に支障を来たしてしまいます。
これをどうにか解消させる方法はありませんでしょうか?
以下、決定事項の為、変更する事は出来ません。
・画面はSJISで出力、テンプレートファイルもSJISで記述
・スクリプトはUTF-8で記述
・根本的なエンコーディング処理
(受け取った値に対して、以下の処理を走らす。
mb_language("japanese");
mb_convert_encoding("UTF-8", "auto");
画面へ出力する際に、以下の処理を走らす。
mb_language("japanese");
mb_convert_encoding("SJIS", "auto");としている)
・画面から受け取る文字列は何でも受け取る
どなたかご教示下さい。
No.1ベストアンサー
- 回答日時:
sjisの半角カナをautoで判定しているためEUC-JPと誤判定されているのでしょう
自動判定は使わないほうがいいです
mb_convert_encoding($str, "UTF-8", "sjis-win");
でいいのでは
ありがとうございます。きっと仰るとおりなんだと思います。
自動判別する所で文字コードの問題が発生してしまうとは・・・。
自動判別出来る=自動判別なら文字コードのバッティングを意識
しなくていいと思っていたのですが。
mb_check_encoding()で対応できるみたいでした。
mb_check_encoding()で対応出来なかった場合、幸いにも質問に
あるパターンは決まった動作をされた時のみ発生するので、
文字コードエンコーディングを行っている関数に変換元文字
コードでも引数に追加して、渡ってきたらその文字コードで
変換するように対応してみます。
(そっちの方がスマートかつ確実なので、最初からそっちで対応するかも・・・)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字化け変換方法
-
【PHP】mb_convert_encoding...
-
UTF8メールがLotus Notesで文字...
-
廣のjis変換で文字化け
-
PHPmailerでの添付ファイルの文...
-
Accessの文字数を調べたい
-
文字の入力で横バー上段、中断...
-
VBAのコマンドボタンの文字列の...
-
全角括弧と全角読点の間隔を狭...
-
エクセルのCOUNTIFが正しくカウ...
-
エスケープ文字の復帰(¥r)と...
-
テキストボックス行の桁数を制...
-
半角記号、全角記号を含む正規...
-
texのchapterが改行される
-
コンボボックスの項目中に改行を
-
グレープシティのSPREAD...
-
JavaMail,本文中の改行について
-
テキストボックスに改行を含む...
-
秀丸の正規表現で複数行にわた...
-
jsp 改行コードで改行させて表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字化け変換方法
-
SQL Serverで文字コードUTF-8
-
mb_convert_encoding で 一部の...
-
ファイルの文字コードを調べたい
-
mail()で送信したメールのタイ...
-
mb_strposについて予定外の結果...
-
小さいひらがな(っ、ょ、ぃ、ゃ...
-
PHP cURLでPOSTした値が文字化...
-
PostgreSQLからCSV形式でエクス...
-
PHPmailerでの添付ファイルの文...
-
phpMyAdmin内での文字化け
-
mb_send_mailで、半角スペース...
-
UTF8メールがLotus Notesで文字...
-
メールフォームが部分的に文字...
-
DOMDocumentの文字化けに悩まさ...
-
フォームメールの文字化け
-
mb_send_mailの2重投稿を防止し...
-
【追】「あ」→「82A0」のように...
-
SJISで取得した半角カナをUTF-8...
-
Gmailへのメール送信で文字化け
おすすめ情報