ヘッダーで文字コードをSJISになるように
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
と設定し、ボディ側のformで
<form method="post" action="xxxxx">
<input type="text" name="n" value="">
<INPUT type="submit" value="実行"><br />
</form>
とすると、サーバ側で受け取ったname="n"がutf-8になっています。
PHPですが、受け取った文字を
echo mb_convert_encoding($_POST["n"],"SJIS","utf-8"):
とSJISに変換し、表示すると、文字化けなく表示可能なのですが、そのままでは文字化けてしまいます。(表示側のHTMLも文字コードは上記と同様にヘッダーで文字コードを指定しSJISにしています。)
何が悪いのでしょうか?(特殊な環境としてはchrome+jquery mobileを使用しています。)
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
HTML本体の文字コード・・と言うのは遠い昔の--20年位前(^^)のお話で、HTML4.01(1999年)以降は
<form action="[URI]" method="post|get" accept-charset="文字符号化方法のリスト">
→accept-charset ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )
ですから、本文の記述に関わらず、エンコードは指定できます。
accept-charset="UTF-8"
accept-charset="iso-2022-jp,UTF-8,EUC-JP,Shift_JIS"
とブラウザが可能なエンコードを順次テストできるようリストを書いておくことも行われます。
しかし、現実にはブラウザは様々で、携帯電話などは指定に関わらずShift_JISで送信したり、本文の文字コードに従うブラウザも実在しますから、データを受け取ったサーバー側で文字コードを判別して適切にエンコードする必要があります。
PerlにしろPHPにしろ、文字コード判別のモジュールは利用できますから、問題ないでしょう。
ASCII JIS > UTF-8 > EUC-JP > SJIS ( http://www-ise3.ist.osaka-u.ac.jp/miura/?PHP%20G … )
ページの文字コードとは違う任意の文字コードをformから送信する方法|web bibo ( http://www.webbibo.com/blog/htmlcss/accept-chars … )
とか・・
No.1
- 回答日時:
こんにちわ
試しに、Chromeから、perlで受け取ってみたら
あああ=「a=%82%A0%82%A0%82%A0」
として、受け取れました。
参考
http://charset.7jp.net/sjis.html
これで、試すと、どうでしょうかね?
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Language" content="ja">
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>testpage</title>
</head>
<body>
<form method="POST" action="test.cgi">
<textarea name="a">
</textarea>
<input type="submit">
</form>
</body>
</html>
以下、perl
#!/usr/bin/perl
print <<EOM;
Content-type: text/html
EOM
while(<STDIN>) {
print $_;
}
ただ、ガラケーで、がんばってUTF-8を指定したにも関わらず、
POSTなら大丈夫だったのですが、GETにしたら、勝手にShift-JISに
されてしまうことは、ありましたね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
GROUP BYを行った後に結合したい。
Oracle
-
バッチ処理でファイルの中身を変数に入れるやり方
その他(プログラミング・Web制作)
-
データベース関係で、データの洗い替えとはどのような事を行うことでしょう
IT・エンジニアリング
-
-
4
BASE64のエンコード時のサイズについて
Outlook(アウトルック)
-
5
含まない言い方ってどうしたらいいんでしょうか
日本語
-
6
データベースのINT型項目にNULLはNG?
MySQL
-
7
Visual Studioを使うときたまにBackspaceやEnterが効きません...
C言語・C++・C#
-
8
【DB】同じトランザクション内でupdateとselectをしたときの結果値
その他(データベース)
-
9
postgresql についてです
PostgreSQL
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
css ,videotタグ。ホームページ...
-
HTMLソースにない文字がブラウ...
-
body内にmetaタグを記述は問題...
-
<META>文字コードと入力場所に...
-
<body>内に<head>を入れ子にで...
-
文字コードをutf-8で保存したい
-
HTML上に貼り付けたPDFが表示さ...
-
カラーラインの中に文字
-
文字化けを故意に表示したい
-
、URL化させるにはどうしたらい...
-
Excelで、社外秘(閲覧のみ)と...
-
HTMLからフォルダを開きたい
-
Dreamweaverでページ全体が文字...
-
form action="#"
-
htmlファイルの表示が真っ白
-
Webサイトから、txtファイルを...
-
折りたたみ可能なフリーのHTML...
-
java_run.batがダウンロードで...
-
HTMLで別PCのフォルダを開く
-
iPadの標準ブラウザでローカルH...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
css ,videotタグ。ホームページ...
-
POSTしたデータの文字コードがu...
-
携帯とPCの自動判別
-
body内にmetaタグを記述は問題...
-
HTMLファイルのインクルードで...
-
HTML上に貼り付けたPDFが表示さ...
-
HTMLでwebサイトを作ってるので...
-
iframe内の表示を常に最新にしたい
-
ページ全体を中央に配置したい...
-
WEBページがIEだけ文字化けして...
-
根号の書き方について
-
リンクボタンにgifアニメを使え...
-
textareaの一行の文字数制御
-
文字化けを故意に表示したい
-
borderでa:hover下線表示させる...
-
IEのみ文字化け
-
safariだけcssが反映されない
-
Javascriptでランダムパラメータ
-
表示時に1回だけリロードさせ...
-
なぜ height 100% がつくのか ...
おすすめ情報