お世話になります。
自分で作ったサイトですが、
入力フォームの氏名を書き込んで、それをクッキーに保存して、それを呼び出すと、入力した名前が文字化けしてしまいます。
自分で作ったといっても、無料配布のCGIです。
これはファイヤーフォックスの問題でしょうか?
私の環境は、Windows8.1 です。
ちなみに、その部分の内容は、次の通りです。
print "<FORM METHOD=\"POST\" ACTION=\"./bbs.cgi\" ENCTYPE=\"multipart/form-data\">\n";
print "<input type=\"hidden\" name=\"mode\" value=\"modify\">\n";
print "<input type=hidden name=\"no\" value=\"$main_no\">\n";
}else{
print "<FORM METHOD=\"POST\" NAME=\"F1mode\" ACTION=\"./bbs.cgi\" ENCTYPE=\"multipart/form-data\" onSubmit=\"return chuuikakunin()\">\n";
print "<input type=\"hidden\" name=\"mode\" value=\"add\">\n";
}
正直なところ詳しいことはよく分かりませんが、
onSubmit=\"return chuuikakunin()\"
↑これは、JavaScriptを使って名前の入力が無いとアラートで知らせるためのものだと思われます。
よろしくお願い致します。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
先の回答者が説明している通り、formに送信文字コード指定するのが簡単かなとは思います。
あと参考までに思いつくものをいくつか。
・ファイルの文字エンコード(htmlの指定と別の場合が……)
・htaccessの設定
CGIの中身がわかりやすいものでしたら
送信先の部分で、展開前に
文字エンコーディングの自動判別→データ変換という手も使える…かも……
この回答への補足
No.3のORUKA1951さんのご回答のように、
formに、Accept-charset=\"Shift_JIS\" を入れてみました。
ダメでした。ファイヤーフォックスだけだめです。
他のブラウザは大丈夫でした。
次に、ネットで調べて、名前の入力部品に次のように入れてみました。
<INPUT TYPE = \"text\" name = \"name\" SIZE = \"30\" VALUE=\"$c_name\" onclick=\"org=document.charset;
document.charset=\'shift_jis\';
document.f1.submit();document.charset=org;\" maxlength=10>
これもダメでした。
結局、あと残りの方法で、No.3のORUKA1951さんに教えてもらった
$xx =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C", hex($1))/eg;
が、まだ残っておりますが、どこに入れていいもの分からないので試していません。
ファイヤーフォックスとWindows8.1の問題でしょうか?
でも、他のサイトは大丈夫なので、やっぱりクッキーの問題でしょうか?
すみません。でも、ありがとうございました。方法はありそうなので少し安心しました。
どちらにしても、私の能力を超えている問題です(:_;)情けないですが。
No.3
- 回答日時:
>これはファイヤーフォックスの問題でしょうか?
ということは、他のブラウザでは文字化けしないということですか??
本来は、formにcharsetが指定されていない場合は、それが含まれるHTMLのcharsetで送信されます。文字コードによってその数値は異なります。
受け取ったCGI側で文字コードが判別できない場合とか、cookieにする時にきちんとURL変換されていないと・・
Perlでしたら
$xx =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C", hex($1))/eg;
名前の入力チェックでしたらjavascriptは関係ありません。
ファイヤーフォックス以外は文字化けしません。
よく見ると、クッキーに保存された文字が、2回目は倍の長さになっています。
文字化けした文字がさらに増殖して文字化けしている感じです。
CGIはPerlです。
その他のことは難しいので調べてテストしてみます。
ありがとうございました。
No.2
- 回答日時:
文字コードちゅうもんがあるわけですよ。
「あ」とか「い」とか書いてても本当は番号なわけですよ。
http://www.seiai.ed.jp/sys/text/java/shiftjis_ta …
んでもって文字コードには面倒なことに種類がいくつかあるのですね。
utf-8 euc-jp shift-jis などなど
なので、同じ「あ」て書いたとしても、実際は番号なので、
その番号を他の文字コードと勘違いして、対応表に照らしあわせて表示したら全く別の文字になるわけですよ。
俗にいう文字化けです。
フォームが表示されている文字コード → 多分ブラウザはこの文字コードでpealに入力したデータを投げるでしょう。
プログラム内部で受け取って処理するのですが、内部では別の文字コードとして取り扱ってる
などなど、ちゃんと文字コードの事を考えずに作ると文字化け地獄です。
質問内容を見るにご自分で制作されたものではないでしょうから、設置マニュアル等を探してみてください。
HTMLのヘッダー部は、charset=Shift_JISとしています。
他の、文字コードにしてみると、ファイヤーフォックスはもちろん、IEやGoogle Chromeやサファリでも文字化けします。
Shift_JISだけがファイヤーフォックスで文字化けします。
もうちょっとテストしてみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォームに入力した値をURLに付...
-
formタグのactionパラメータで...
-
1アクションでPOST・GET、両方...
-
IE6でiframeにPOSTできない
-
ファイヤーフォックスでフォー...
-
submitをボタン以外にするには
-
【html】)パスワード認証フォー...
-
リンクをクリックした時にform...
-
長文のmailtoの使い方
-
inputtype=hiddenとは?
-
mailtoによる送信ができない
-
複数のフォームを一括で送信す...
-
検索バー
-
HTMLのoptionタグ部分に画像を...
-
JavaScript 超初心者です。 Doc...
-
submit時に違うページに飛びたい
-
Rails のコンボボックス(selec...
-
チェックボックスをチェックし...
-
<SELECT>タグでの selected 状...
-
au着うたのダウンロード
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
送信ボタン押下時に値が未入力...
-
submitをボタン以外にするには
-
複数のフォームを一括で送信す...
-
1アクションでPOST・GET、両方...
-
リンクをクリックした時にform...
-
<a href=**?***=***>をGET方式で
-
フォーム要素以外にもname属性...
-
type="hidden"を使って時刻を送信
-
長文のmailtoの使い方
-
URL パラメータを使ってフォー...
-
checkboxを「変更不可」にでき...
-
【html】)パスワード認証フォー...
-
送信フォームを2つ用意する方法
-
mailtoについて
-
お問い合わせフォームの送信後...
-
HTMLのフォームタグの送信順に...
-
CGI動作後に元のページに戻る方法
-
formタグのactionパラメータで...
-
GETをPOSTに変更したところ 送...
-
タブキーでなくエンターキーで...
おすすめ情報