• ベストアンサー

formに「蘭」という文字を入れると「@」と認識されてしまいます。。。

とあるフォームをつくったのですが、 「蘭」の文字を入れると、「@」もしくは「@」と認識されてしまい、 メールアドレスの入力を避けるためにいれたエラーメッセージが 出てしまいます。 文字コード等でググったのですが、判明しませんでした。 ご経験のあるかた、解決策をご存知の方がいましたら、 教えてください。 よろしくおねがいします。

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

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

@ (半角) と@ (全角) のどちらにマッチしてるか, わかりますか? shift_jis だと「@」が 8197 で「蘭」が 9796 なので, 「蘭」の前に「81」で終わるコードがあり, それを「@」と誤認識している可能性はないかなぁ. まあ, 最悪は /[@@]/i が /[@\x81\x97]/i と思われてるって可能性もあるはあるんですが.

phoo0529
質問者

お礼

Tacosanさん、有難うございます! 回答していただいたのをヒントに、 =~ /(@|(\x81\x97))/i に直してみたらできました! 有難うございました!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • thatsthat
  • ベストアンサー率55% (15/27)
回答No.2

フォームから入って来る文字のようなので 事前に\を付ける事は出来ないかと・・・。 @を含むかどうかの判定を正しく行う必要があるのですが、 ・フォームから入って来る値(この場合は「蘭」)の  漢字コードの変換は何か行ってますか? ・@を含むかどうかの判定部分は、どんなソースになっていますか? ・お使いのperlは5.8系ですか?それ以外ですか?  (perl -vで確認できます) といった所を補足していただけると もうちょっと何か分かるかも知れません。 sjisでもunicodeでも「蘭」自体に「@」の文字コードは 含んでないようなんですよね・・・。

phoo0529
質問者

補足

thatsthatさん、回答有難うございます。 >漢字コードの変換は何か行ってますか? 変換は行っておりません。 >@を含むかどうかの判定部分は、どんなソースになっていますか? =~ /[@@]/i こんなかんじです。 >お使いのperlは5.8系ですか?それ以外ですか? はい、5.8系です。 補足してみました、、こんな感じで大丈夫でしょうか・・? 他に情報が必要でしたら言って下さい^^;

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

文字頭に\(エスケープシークエンス)を入れてみてください。 下の2行はテスト例です。 print = "蘭<br>\n"; print = "\蘭<br>\n";

phoo0529
質問者

お礼

dingo_bazzさん、有難うございます。 私も¥つければOKと、一瞬よぎったのですが、 thatsthatさんの言う感じで、フォームからの入力なので、 断念しました・・・

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • YAHOOメールでエラーが出て使えないのですが・・・

    現在YAHOO BBに加入し、 YAHOOメールを使っています。 会員用のアドレスと、フリーでもうひとつ、 2種類のアドレスを使っています。 《YAHOOでフリーで作ったアドレスのメールは》 ここ2~3日、メールを作成しても、 (1)送信しようとする時、 (2)アドレスブックからアドレスを引っ張ろうと、  TO のボタンをクリックした時。 (3)ファイルの添付 のボタンを押したとき。 ページ内でエラーが発生しました。 と左下に出てきて、メールが送れません。 《yahoo会員のアドレスのメールの場合》 本文の入力欄が出てきません。 “to" “ファイルを添付”ボタンは普通に出てきますが、クリックするとエラーが出ます。 エラーメッセージは、 ライン:847 文字:1 エラー:オブジェクトを指定して下さい。 コード:0 ライン:922 文字:7 エラー:Spellcheck_clickは宣言されていません。 コード:0 ライン:2481 文字:11 エラー:"("がありません。  コード:0 ※(エラーメッセージはコピーできませんでした。   記号があんな感じの記号1文字です。) パソコンが悪いのでしょうか? yahooが悪いのでしょうか? 解決策が分かる方いらっしゃいましたら教えて下さい。

  • CGIの文字コードについて

    CGIを下記URLのサイトから落として、メールフォームを設置しました。 http://www.synck.com/contents/download/cgi-perl/mailform_jcode.html 「メールフォームCGI UTF-8対応版」というメールフォームです。 mailformというフォルダの中に send.cgi(プログラム本体) check.cgi(設置確認プログラム) count.dat(通し番号を記録するファイル) があり、send.cgiはメールアドレス等を書き換える程度の編集をしております。 フォームには必須項目を設け、何も入力せずに送信ボタンを押すと、「●●が入力されていません」というようなダイアログが表示されます。ですが、必須項目を入力して送信ボタンを押すと500エラーがでます。 「●●が入力されていません」という表示がなされるということは、cgiの設置自体はとりあえずできていると考えてよろしいですよね? 文字コードが問題だと思い、検索かけてみたもののよく理解できず、色々な文字コードで保存しては、実際にアップしたメールフォームを使って試していたら、一度だけ、設定したメールアドレスにきちんとメールが届きました。しかし、自動で送信される送信内容を確認するメールの方が文字化けしてしまいました。 逆に、自動で送信される送信内容の確認メールは届かないが、文字化けしたメールが設置したアドレスに来たこともありました。 設置者へのメールを送信者への内容確認メールが文字化けせずにきちんと送れたことはありません!! 長くなりましたが、どの文字コードで読み込み、そしてどの文字コードで保存したら良いか分かりません。 cgiの編集はTerapad、サーバはさくらインターネットのライトです。 サーバへのアップは直接さくらインターネットにログインして行っております。 ※CGI初心者です。初めて設置する完全素人です。 よろしくお願いします!!

    • 締切済み
    • CGI
  • フォームの文字数制限を解除したい

    kent webさんのフォームメールを使っているのですが、文字数制限があり、メッセージを沢山入力すると、「メッセージの入力内容が大きすぎます」というエラーがでてしまいます。300文字程度は入力できるようにしたいと思います。textarea に関する何を改造すればうまくいくでしょうか?皆さんよろしくお願いします。

    • ベストアンサー
    • CGI
  • この文字化け文字を解読できますか

    この文字化け文字を解読できますか BF\x82\xE5\x82\xC4\x82\xB7 本来の文字コードとは間違って認識されているのでしょうか? phpのメール送信フォームからメールを送信した際に 送信先がブログ記事投稿用メールアドレスになるのですが 投稿した記事の本文がこのように文字化けしてしまいます。 送信先がケータイやPCの場合は文字化けしないのですが。。 理由の検討のつく方いらっしゃいましたら ぜひ教えていただければ幸いです。 ●●という文字コードが▲▲という文字コードとして 認識されているのではないか、など。。。 アバウトなご意見でもかまいません。 意味不明でしたら加筆修正しますのでよろしくお願いします。

    • ベストアンサー
    • PHP
  • フォームに入力されたお客さんのアドレスが前の文字にくっついて困っています

    事業のホームページの管理をしています。 そのホームページに、お客さん用の「フォーム」のページを設けて、問い合わせの内容を入力してもらっています。 ホームページ・フォーム(cgi)は、レンタルサーバに設置していて、問い合わせは、メールで設定通り送信されるのですが、問い合わせ内容の一つのメールアドレスが前の文字「=」(半角)にくっついて一体化してしまいます。 このメールアドレスをクリックすると送信用のウィンドウ(メッセージの作成)が起ち上がり、「宛先」欄にこのメールアドレスが記入されてしまいます。 「フォーム」から送信されてくる内容は、     ・     ・ メールアドレス=○○○@○○○.ne.jp そして、この「=○○○@○○○.ne.jp」がアドレスとして認識されます。 つまり、お客さんは、「○○○@○○○.ne.jp」と入力しているのに、「=」がこのアドレスにくっついて違うアドレスになってしまいます。 この一体化したアドレスは、ばらすこともできず、手間がかかります。 メーラーは、Outlook Express6を使用しています。 また、フォーム送信のcgiは、レンタルサーバが用意しているものを使用し、サーバのサイトから「項目」などの内容を設定しています。 フォームのページは、ホームページビルダーV8で自分で作りました。 「フォーム」からの送信は、 ○○○=メールアドレス という形式が多いと思うのですが、皆さんはどのようにされているのでしょうか? アドレス入力の際、1文字空けてから入力してもらえれば、「=」にくっつくことはありませんが、お客さんにこのような手間をかけてもらうのは恐縮します。 何か良い方法があれば、教えて頂けないでしょうか。

  • 入力フォームに文字を入れると消える文字

    よく名前やメールアドレスを入力するフォームがありますよね。 あれでクリックすると最初に表示されてる文字(「お名前」や「メールアドレスなど」)が消えるjavascriptのサンプルはたくさん見かけるのですが、 一文字目を入力した時に消えるサンプルってどこかにありませんか? かっこいいのでサイトに実装したいのですが。

  • sony DVD+-RW DW56A が認識されません。

    DELL Inspiron1150を使用していますが、突然DVD/CD-ROMドライブが認識されなくなりました。エラーメッセージはコード39でドライバが無いか壊れている可能性がありますとメッセージがでます。ディバイスマネージャーで削除し再起動しても正しいドライバが認識されません。DVD/CD-ROMはsony DVD+-RW DW56Aです。解決策を教えてください。

  • マウスで文字入力&文字認識

    WEBサイトでお絵かきソフトのようにマウスで文字を書くことをさせ、 さらにその文字を(OCRのように)認識して、 テキストフォームなどの文字入力と同じようにプログラムで処理したいのですが、 どのような実現の仕方があるでしょうか? わたくしPerl遣いですが、Perl単体ではできないように思え、 フリーなどのプログラムがあれば利用したいのですが、、、

  • メールの件名が文字化けします

    はじめまして。 ホームページのリンクをクリックすると、メーラーが立ち上がってメールを送れるようにするのを作っています。 ↓こんな感じです。 <A HREF="maito:受信先メールアドレス?subject=件名">メールはこちら</A> ですが、件名が文字化けしてしまうのです。 HTMLをEUCコードで書いているのですが、 これが原因なのでしょうか? 今作ってるホームページの文字コードはEUCでないとダメと言われているので、EUCでないといけないのです。 もしどなたか解決策をご存知の方がいれば助けて下さい。 よろしくお願いします。

  • フォームへの誤った文字入力を阻止したいのですが。

    フォームにメールアドレスが入力された際に、メールアドレスとして許可されたものでない文字や記号は入力されないようにするか、あるいは入力は許しても送 信されないようにするJavaScriptは可能でしょうか?可能でしたら、そのScriptをお教えくださいませ。