- 締切済み
CGIについてです。教えて下さいませ
Iphoneやandroidなど様々なものが出てきて、その度に対応に追われる毎日です。 本題です Iphoneでは、metaがutf-8出ないとだめらしいということが分かり対応のために早速 CGIの printの部分の meta の部分を全てutf-8に変更し且つ、utf-8で保存してアップロードを しましたら、見事に文字化けが解消され表示致しました しかし 以下ロジックですが <table border=0><tr><td> <dt><font color="#0054C0"><U>$Gname</font> 様</U><BR> ←ここの表示部分も文字化けします ご予\約を承りました</dt> </td> </tr></table> <BR> ご予\約を取り消したい場合<BR> ご予\約日時で確認することになりますので<BR> メモなどに控えておいてください。<BR><BR> <div id="contents"> <dl class="index"> <dt>予\約日</dt> <dd>$Gyer年$Gmon月$Gday日<BR> ($Gwek曜日)</dd> <dt>予\約時間</dt> <dd>$TM1時$TM2分</dd> <center><form action="./sp_reserve.cgi"> <input type="hidden" name="wrk" value="1"> <dt><button class=\"button8\" type=\"submit\">更に予\約する</button></dt> </form> この部分の $Gname のところが必ず文字化けを起こします。 そしてsendmailの$Gnameの部分も文字化けを起こして送信されてきます。 sub MAIL {$sendmail = '/usr/sbin/sendmail'; &Jcode::convert(subject); &Jcode::convert(\$wh,'sjis'); &Jcode::convert(\$MYSIGN,'sjis'); $message = <<END_OF_MESSAGE; To: $myaddress From: = = Subject:==?ISO-2022-JP?B?GyRCNmE5PjwjTkUxIT9HTkVNPUxzGyhCIGZvclBD?== Reply-To: $wh END_OF_MESSAGE open(MAIL,"|$sendmail $myaddress"); print MAIL $message; close(MAIL); 多分 utf-8にしたためと思うのですが、$Gname以外は殆ど文字化けしない状態で メールが送られるようにまではしましたが、メールもそうですが、お客様の ○○様 の○○の部分が 文字化けを起こすため。お客様が ( ‥) ン?と思われると思うのです。 どうか、詳しい方おられましたら、なぜこのような文字化けが起こるのかご教示いただけませんでしょうか 宜しくお願い致します。 ちなみに下記のメールの内容が現在です ==================== 予約報告 お客様氏名:〓〓 様 ← ここが文字化けしてしまいます shift-jisの時はなかった。。。 予約日:2013年11月21日(木曜日) 予約時間:15時00分 症状等通信欄:プログラムがうまくいかない
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kmee
- ベストアンサー率55% (1857/3366)
肝心の$Gnameを設定する箇所が無いんですけど。 状況から判断するに、Shift_JISのままなのでしょう。 > Iphoneでは、metaがutf-8出ないとだめらしい 本当ですか? 私が持っているのはiPadですが、別にUTF-8以外のサイトでも見れています。 何か別の情報と混同していませんか? > &Jcode::convert(\$wh,'sjis'); これをそのまま$messageの中に入れて、そのままsendmailしています 日本語のメールはISO-2022-JPで送るのが普通なのですが。 > 予\約 いわゆる「ダメ文字」対策です。UTF-8では無意味です。 https://sites.google.com/site/fudist/Home/grep/sjis-damemoji-jp/table
お礼
ありがとうございました。
補足
早速素早い回答に驚きと感謝です。ありがとうございます 何か別の情報と混同ですか~(´ヘ`;) う~ん・・・ 私自身はもちろんandoroidですからAppleの事はよくわかりませんが、shift-jisでもHTMLのページは問題なく閲覧できても、perl(CGI)のページは文字化けするようです。 ちなみにこの情報を伝えてくれた友人は、Apple Iphoneの最新機種だということです、最新だから??よくわかりませんが。。。 そうでした肝心かなめの$Gnameですが、これは先にお客様に IDPWを登録してもらった際に他のdataフォルダに格納された配列から読み込んで代入してるようです。ですから予約のお客様に再度お名前($Gname)を打って頂く事はありません まだまだ初心者ですので、しっかりこれを機に勉強と訂正をしていきたいので、txtファイルをリンクしておきますのでご教示いただけましたら幸いです ちなみに、utf-8のままTXTにしてブラウザで見たら、日本語の箇所が全て文字化けしていたので、再度 shift-jisに保存しなおして、アップしておきました どうかよろしくお願いいたします 勉強させて下さい。 http://www.oomicure.com/oomi/ip_mkkeitai.txt