![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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ランキング
-
ダブルクォート文字などをフォ...
-
index関数と英語文字
-
データが多いとエラーになる:...
-
正規表現でカンマを対象にする方法
-
jcode.plのバグでしょうか?KCc...
-
戻り値の意味がわかりません…
-
unicodeの表示
-
CSVファイルの中で、「 , 」カ...
-
全角英数字の必要性が理解できない
-
PHP カンマをエスケープしたい...
-
英数字のみ全角から半角に変換
-
VBA 文字に半角が含まれて...
-
エクセルで数値を全角文字(カ...
-
csvデータ ダブルクォーテ...
-
文字コードの%E3%80%とは何です...
-
VBA 置換文字がみつからない時
-
CASLIIの数値データ入出力
-
3桁ごと?4桁ごと?コンマの...
-
Accessのテキストボックスの入...
-
スペースで区切られた氏名から...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
InputMan の imTextについて
-
ダブルクォート文字などをフォ...
-
jcode.plのconvertを使用しなけ...
-
機種依存文字の文字コード変換
-
チェックボックスの複数選択の...
-
常用漢字?でない文字を判定す...
-
戻り値の意味がわかりません…
-
index関数と英語文字
-
文字実体参照が勝手に変換され...
-
CASL2の仕様での英単語の格納方法
-
Perlでのマッチング処理について
-
文字化けを元に戻せますか?
-
大文字、小文字のコードの打ち方
-
Jcode を使った複数選択値の文...
-
デコード処理について
-
テキストファイルの大文字を小...
-
テキストエリアに半角「\\」ま...
-
正規表現でカンマを対象にする方法
-
Jcode.pmでの半角カナ→全角カナ...
-
「数値文字参照への変換するソ...
おすすめ情報