Webフォームから取得したデータに半角カナが含まれていた場合の文字化け対策として、Jcode.pmを使用して、下記のようにEUCに変換しています。
use Jcode;
$euc_string = jcode($form_input)->h2z->euc;
原理的には間違ってはいない筈ですが、ほとんどの場合、$form_inputの文字コードの判別に失敗(恐らく半角カナをEUCと誤認)し、文字化けしてしまいます。誤認しないように、下記の様に記述すれば、正しく全角カナに変換してくれます。
use Jcode;
$euc_string = jcode($form_input,"sjis")->h2z->euc;
ただ、入力コードがシフトJISとは限りませんので、この記述は好ましくないと思っています。
半角カナの文字化けは、webフォームを作られた方なら皆さん経験されていると思うのですが、どうされているのでしょうか?
Jcode.pmの文字コード判別は、半角カナが混じっていた場合、かなり長い文字列でないと判別に失敗するようなので、フォームで短い文字列(名前等)を入力させて処理させた場合、ほとんど上手く動かないようなのですが?
No.1ベストアンサー
- 回答日時:
私は、bkoさんのあげられているような、入力文字列を"SJIS"と決めうちする方法を取っています。
ほとんどのブラウザでは、SJISでフォームを出力した場合にはSJISで日本語をエスケープして送信してくるからです。実際、SJISのフォームに対してeucで送信してくるブラウザは、最近のブラウザでは見たことがありません。(昔は平気でeucで返してきましたけど:-))
sjisの半角カナはeucとかぶる領域に存在しますので、これを識別するには日本語として正しいのか、までを意識する必要があり、めんどうな実装となると思います。
ありがとうございます。
昔はクライアントのOSが使用しているコードを返してくるブラウザがあったのですが、確かに、最近はSJISで返って来ている気はしていたのですが。
なにせ、Windowsを使用している人が大部分でOSが使用しているコードを返してきているとしても大部分SJISが返ってきてしまうので、自信がなかったのです。
実際にお使いになってる方がいれば、ちょっと自信をもって使えます。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- Excel(エクセル) エクセルシート中の全角英数字を半角に変換したい 4 2022/07/07 13:14
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jcodeでsjisに変換できない
-
ダブルクォート文字などをフォ...
-
文字化けの事で?
-
InputMan の imTextについて
-
戻り値の意味がわかりません…
-
正規表現でカンマを対象にする方法
-
デコード処理について
-
機種依存文字の文字コード変換
-
CSVファイルの中で、「 , 」カ...
-
マクロを使ってフォルダー内に...
-
英数字のみ全角から半角に変換
-
「何とかで始まり、何とかで終...
-
エクセルで数値を全角文字(カ...
-
EXCELからCSVにすると余計なカ...
-
エクセルにMicrosoft Barcode C...
-
カンマ区切りの数字をCSVフ...
-
各項目がダブルクォーテーショ...
-
Excel VBAでPDFファイルをMicro...
-
住宅にカナを入力する際に丁目...
-
csvデータ ダブルクォーテ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
InputMan の imTextについて
-
ダブルクォート文字などをフォ...
-
正規表現でカンマを対象にする方法
-
文字実体参照が勝手に変換され...
-
常用漢字?でない文字を判定す...
-
文字化けを元に戻せますか?
-
戻り値の意味がわかりません…
-
チェックボックスの複数選択の...
-
「数値文字参照への変換するソ...
-
jcode.plについて
-
SUBMIT時の入力文字のURLエンコ...
-
半角カナを検出したい
-
utf-8のマシンでsjisのデータフ...
-
jcode.plのバグでしょうか?KCc...
-
Jcode.pmでの半角カナ→全角カナ...
-
文字をISO Lathin 1 文字コード...
-
機種依存文字の文字コード変換
-
パターンマッチ変換について
-
文字コード
-
index関数と英語文字
おすすめ情報