現在、画面が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で質問しましょう!
似たような質問が見つかりました
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- Windows 8 win8 "ベータ ワールドワイド言語サポートで Unicode UTF-8 を使用"を出したい 2 2023/05/23 19:57
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
- Excel(エクセル) 文字化け。メモ帳でUTF-8に変換後、エクセルへ貼り付けたいです。 3 2022/08/14 07:21
- その他(プログラミング・Web制作) 単純なコマンドプロンプトが動きません。 2 2022/04/19 15:21
- その他(プログラミング・Web制作) pythonのpandasのcsvの外部結合(outer_join)した際に列が想定とは異なる事象 1 2022/05/25 13:23
- Illustrator(イラストレーター) ワードに貼った画像のキャンバスと画像本体のサイズの調整 2 2022/05/19 18:31
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpのメールフォームの完了画面...
-
廣のjis変換で文字化け
-
10文字以降は非表示にしたいん...
-
送信したメールのタイトルが無...
-
sjisで書いているPHPとeucのM...
-
PHP・MySQLでデータベースを作...
-
SQL Serverで文字コードUTF-8
-
VBAのコマンドボタンの文字列の...
-
テキストファイルから改行コー...
-
C++で空Enterの入力を判...
-
csobjというタグについて
-
LaTeX: captionの中で改行した...
-
VC++ マルチバイト文字とUniCod...
-
JAVA System.out.println の ...
-
fgetsとsscanf
-
エスケープ文字の復帰(¥r)と...
-
VBAでCSVをExcelに取り込む時に...
-
VB.net テキストボックス半角文...
-
VB6でブラウザのページソースを...
-
C++のctime関数復帰値の改行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字化け変換方法
-
phpのメールフォームの完了画面...
-
SQL Serverで文字コードUTF-8
-
PHPmailerでの添付ファイルの文...
-
SJISで取得した半角カナをUTF-8...
-
mb_convert_encoding で 一部の...
-
SJIS→UTF-8変換後の文字化けに...
-
PHP cURLでPOSTした値が文字化...
-
phpMyAdmin内での文字化け
-
mb_ereg_replaceに関して
-
RSSを取得すると文字化けする。
-
PostgreSQLからCSV形式でエクス...
-
【PHP】mb_convert_encoding...
-
mb_regex_encodingでエンコード...
-
postの文字化け防止について
-
小さいひらがな(っ、ょ、ぃ、ゃ...
-
UTF8メールがLotus Notesで文字...
-
mail()で送信したメールのタイ...
-
php自動返信メール本文の一部の...
-
phpでの文字エンコード
おすすめ情報