OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

フォームから入力した漢字が文字化けに

  • 暇なときにでも
  • 質問No.103185
  • 閲覧数1047
  • ありがとう数5
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 93% (137/147)

アンケートを作成しました.
入力フォームに漢字(名前など)を入力して送信すると内容がメールで受け取れます.入力フォームは確認画面が表示できるようにしてありその後,送信でメールを受け取ります.確認画面表示は問題なく2バイト文字は表示されています.そのhtmlファイルの記述に下記設定をしています.
<META HTTP-EQUIV='Content-Type' CONTENT='text/html;CHARSET=Shift_JIS'>
CHARSET=Shift_JISの部分の指定をいろいろ替えました変化ありません.

なにかこのようなことで知ってる方教えてください.
また文字コードの制御,フォームとCGIのデータのやりとりなどがわかるサイトや書籍を知ってましたら併せて教えてくださるとありがたいです.
よろしくお願いします.
通報する
  • 回答数5
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全5件)

  • 回答No.1
レベル11

ベストアンサー率 21% (114/531)

 文字化けしているのは確認フォームですよね。フォームで入力された文字はEUCになりますのでjcode.pl等を使ってShift_JISへデコードする必要があります。以下のURLがわかりやすいと思います。 ...続きを読む
 文字化けしているのは確認フォームですよね。フォームで入力された文字はEUCになりますのでjcode.pl等を使ってShift_JISへデコードする必要があります。以下のURLがわかりやすいと思います。
お礼コメント
eijikun

お礼率 93% (137/147)

ありがとうございます.
文字化けしてるのはメール文です.
確認フォームの表示は問題なく表示されています.
投稿日時 - 2001-07-12 14:32:14
  • 回答No.2
レベル11

ベストアンサー率 43% (133/306)

メールは通常JISコードで送受信を行います。 ですので、フォームからシフトJISで入力させた場合は、JISコードに変換する必要があります。 またその際、メールヘッダに記述する charsetは 7bitのiso-2022-jp(←JISコード指定)です。 CGIをperlで作成した場合は、上記のコード変換に jcode.pl というコード変換ライヴラリを requireして使用するのが一般的の様 ...続きを読む
メールは通常JISコードで送受信を行います。
ですので、フォームからシフトJISで入力させた場合は、JISコードに変換する必要があります。
またその際、メールヘッダに記述する charsetは 7bitのiso-2022-jp(←JISコード指定)です。

CGIをperlで作成した場合は、上記のコード変換に jcode.pl というコード変換ライヴラリを requireして使用するのが一般的の様です。
または nkf というコード変換ツールを利用してファイルtoファイルで一括変換したものを送信するという方法も取れます。

perlを使用する場合のテクニックとして、以下のURLの【CGIとJava】→【CGI研究室】が簡潔な解説をされています。
お礼コメント
eijikun

お礼率 93% (137/147)

ありがとうございます.
参考にさせて頂きます.
>メールヘッダに記述する charsetは 7bitのiso-2022-jp
これは試しましたが変わりませんでした.
投稿日時 - 2001-07-12 14:29:26
  • 回答No.3
レベル11

ベストアンサー率 42% (103/245)

補足ですが、確認画面を出すのであれば 確認画面→Shift-JIS メール送信→JIS と2回文字コードを変換すると良いですよ。 ...続きを読む
補足ですが、確認画面を出すのであれば
確認画面→Shift-JIS
メール送信→JIS
と2回文字コードを変換すると良いですよ。
お礼コメント
eijikun

お礼率 93% (137/147)

ありがとうございます.
文字コード受け渡しの時
適した形式にというやりかた試してみます.
投稿日時 - 2001-07-12 14:35:20
  • 回答No.4
レベル10

ベストアンサー率 47% (88/185)

確認画面が問題ないのであれば、 確認画面を「プリントした後」、 $mailbody に、 メール本文が格納されているとしたら、 &jcode'convert(*mailbody,'jis'); このようにして、 メールを「送信する前」に jis にデコードすれば簡単だと思います。 ...続きを読む
確認画面が問題ないのであれば、
確認画面を「プリントした後」、

$mailbody に、
メール本文が格納されているとしたら、

&jcode'convert(*mailbody,'jis');

このようにして、
メールを「送信する前」に
jis にデコードすれば簡単だと思います。
お礼コメント
eijikun

お礼率 93% (137/147)

ありがとうございます.
勉強不足でした.
試してみます.
投稿日時 - 2001-07-13 10:48:41
  • 回答No.5
レベル11

ベストアンサー率 21% (114/531)

確認フォームで文字化けせず、メール内容が化けるのであれば、データは正しくShift-JISに変換されているようですね。sendmail(?)するときにuuencodeされてしまっているのかも知れません。このURLに説明があります。 ...続きを読む
確認フォームで文字化けせず、メール内容が化けるのであれば、データは正しくShift-JISに変換されているようですね。sendmail(?)するときにuuencodeされてしまっているのかも知れません。このURLに説明があります。
お礼コメント
eijikun

お礼率 93% (137/147)

ありがとうございます.
こちらも試してみます.
投稿日時 - 2001-07-13 10:50:18
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ