• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CGIフォームに書いてある @ が消える対策を教えてください。)

CGIフォームに書いてある @ が消える対策を教えてください。

このQ&Aのポイント
  • perl、シフトJISのメールフォームCGIをダウンロードして利用しています。このCGIの設定画面で登録したメールアドレス署名部分のinfo@example.comの @ 部分の記号が消えちゃいます。
  • 送信画面からメールを送った場合は全く文字化けしません。@にするのが良いのでしょうか? 多くの環境で文字化けさせたくないのですが。
  • 数時間ほど調べたのですが解決できませんでした。詳しい方ご回答をお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • YkazubonY
  • ベストアンサー率30% (26/86)
回答No.1

@の前に¥(円記号)を付けると良いと思います。 \@ な感じです。

takumana20
質問者

お礼

別のところに $mail を作り、 メール $mail とする事で解決しました<(_ _)>

takumana20
質問者

補足

回答ありがとうございます。 半角の \@ で文字化けしませんでした。 その後詳しく調べたりテストしてみましたら 登録画面で登録する場合には、単なる @ だけでも文字化けしませんでした。 でも、CGIに直に書きこむ場合には @ で直接書くと文字化けする事がわかりました。 その場合でも、\@ や @ なら文字化けしませんが、 メール info\@example.com メール info@example.com メール info\@example.com のどちらにするべきでしょうか? どれでも同じでしょうか?

その他の回答 (1)

  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.2

その文字列は、perlのプログラムソースに ダブルクォートで括って、記述しているのでしょうか? perl では、 @example は配列なので、ダブルクォートで括って変数展開してしまうと、存在しない配列として空文字列に置換され、@とそれに続く記号以外の文字は消えます。 シングルクォートで括れば、@配列の変数展開はされません。

takumana20
質問者

お礼

別のところに $mail を作り、 メール $mail とする事で解決しました<(_ _)>

takumana20
質問者

補足

回答ありがとうございます。 登録画面ではなく、それを登録しておく CGIが別にありまして $***** = <<_ATR_; メールなどの署名 メール info@example.com _ATR_ 送信するCGIも別にありました。 $xxxxx = $*****; ~~~~ jcode::convert(\$xxxxx,'sjis'); &SendMail($~~, $~~, $~~, '', $xxxxx); 登録画面に直接 @ を使えば文字化けせず、 CGIのに直接 @ を書けば文字化けするようです。

関連するQ&A

専門家に質問してみよう