いちばん失敗した人決定戦

<TD bgcolor="#ffffff" align="center">¥36000<BR>個数
<SELECT name="商品名:白雲">
<OPTION value="" selected>--</OPTION>
<OPTION value="1"> 1</OPTION>
<OPTION value="2"> 2</OPTION>
</SELECT></TD>

上記記述がHTML内にあるのですが、これをmail.cgiを使って送信すると
確認画面や送信されたメールで文字化けをしてしまいます。
文字化けするのは「雲」という文字で、雲の文字を空などにしても文字化けしません。
他の項目もあるのですが、こちらも文字化けしません。
ちなみに、textエリア内に書き込まれた雲と言う文字も文字化けしません。

なぜ、雲という文字だけ文字化けしてしまうのでしょうか?
どうにかして雲を表示させる方法はありますか?

A 回答 (5件)

今更ですが、他のエディタでも便利なものは色々有りますがTeraPadなどを使用すると、


任意の文字コードで開けるのはもちろん、開いた文書をEUCやSJIS他色々な
文字コードに変換したり、改行コードも指定して保存することも可能です。
これを使えば入力しなおさなくても良かったかと思い、今後役立つかもしれませんので
一応、紹介させていただきました。

http://www.vector.co.jp/soft/win95/writing/se104 …
    • good
    • 0

>print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n";


>をprint MAIL "Content-type: text/plain; charset=euc-jp\n";
>にしたら文字化けも治りました。
>これで問題ないのかな?

微妙に問題があるような…
昔のインターネットのメールは、文字データは、7bitで送信していました。(今はどうなのか知らないですが)
この為、メール送信に使用する文字コードは、7bitで日本語を表わせるJISコードが使われています。(半角カナがNGなのはこのせい)
ということは、8bit使用している、シフトJISやEUCだと、昔の仕組みを使用しているサーバーを通ったときに、文字ばけしてしまいます。

また、日本語はJISコードでくるだろ!と決めうちしているメーラーが存在するかもしれない(ないと思うけど)ので、その手のメーラで受けとったら、文字化けしまくるでしょう。

という問題があると思うので、メールの送信内容は、もう一度、JISコードに変換してあげてから、送ったほうが、良いと思います。

とりあえず、適当に検索したものですが、参考にしてみてください。

http://www.watch.impress.co.jp/Internet/www/arti …
http://www.atmarkit.co.jp/fwin2k/win2ktips/711ma …
http://tech.bayashi.net/pdmemo/sendmailbyperl.html
    • good
    • 0

No.1ですが、補足しておきます。


先に書いた、文字コードのエンコードの問題であれば、現状で化けたときに、IE等の
ブラウザで文字のエンコードの選択ができると思いますので、そこで自動選択や、
日本語(~)のどれかを選択して文字化けが解消するようであれば、やはり、
HTMLの出力で明示するか、或いは、SJISからEUCに変更するなどで解決する
可能性が高いです。
まず、確認してみてください。
    • good
    • 0
この回答へのお礼

質問する前に、自分でも検索してHTMLとCGIはEUCに変えましたが出来ませんでした。
CGI内を初めから目を通していたら、&jcode'convert(*name,'sjis');というのがあり、
そこをEUCに変えたら文字化け治りました。
ただ、他が文字化けしてしまいましたけど。。。
でも、CGIはEmEditorで編集していたのですが、S-JISで編集しておりました。
これをEUCで読み直すことによりCGI内の日本語が全て文字化けし、その文字化けした文字をを入力しなおすことにより解決できました。

ありがとうございました。

お礼日時:2006/11/03 19:29

 漢字コードには、メーカーや研究機関などの思惑や利権などの関係から、いくつもの種類が制定されてしまいました。


 現在ではUTFと呼ばれる「Unicode」が主流になりつつありますが、WindowsやMac系は「Shift-JIS」、UNIX系は「EUC」、IBM系メインフレームは「EBCDIC(EBCDIK)」というコードで発展してきました。
 それらには一部コードを「改行」など特殊な用途に割り当てられるコードもあり、そういうコードを、他のコード系では文字に割り当てていたりしますので、文字化けなどの現象に悩まされることになります。
 サーバが何かはわかりませんが、ANo.1さんの解答通りホームページのコードはしっかり設定するのが前提条件です。 できれば、Perlなどの言語で処理加工を行うのであればCGI及びフォーム共、EUCで統一するのが望ましいと思います。
 メールに関しても基本的には7ビットコードしか送れない仕組みになっていますので、漢字は「JIS」コード(Shift-JISではありません)に変換して送信する必要があります(用件やあて先などの漢字はさらにMIMEエンコードしてやる必要があります)。
 「雲」に限らず「Shift-JIS」では状況に応じてほぼ化ける覚悟で作ってください。
    • good
    • 0
この回答へのお礼

#3さんへのお礼にも書かせていただきましたが、無事解決しました。

追記すると、メール本文は問題なかったのですが、メールタイトルが文字化けしてしまいましたが、
print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n";
をprint MAIL "Content-type: text/plain; charset=euc-jp\n";
にしたら文字化けも治りました。

これで問題ないのかな?

お礼日時:2006/11/03 19:33

文字コードはEUCでしょうか?SJISでしょうか?


書き出すhtmlに明示しているでしょうか?していなければ下記のように明示すると
どうなるでしょうか?

<META HTTP-EQUIV="Content-type" CONTENT="text/html;charset=EUC-JP">

とか

<META HTTP-EQUIV="Content-type" CONTENT="text/html;charset=Shift_JIS">
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!