Perlで作ったフォームで、全角文字が全て文字化けしてしまうのは、

どのような理由がありますでしょうか?

回答の条件
  • 1人2回まで
  • 登録:2008/05/14 11:38:48
  • 終了:2008/05/21 11:40:02

回答(3件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332008/05/14 12:15:29

ポイント27pt

HTMLタグでキャラクタセットを指定していますか?


日本語(全角文字)であれば、

<html lang="ja">
<meta http-equiv="Content-Type" content="text/html; charset=****" />

"****" に適切なキャラクタセット(例:utf-8)をセットする必要があります。

なお、キャラクタセットは、perlソースと同じ文字コードにするのが一般的です。

id:hirotow No.2

hirotow回答回数131ベストアンサー獲得回数102008/05/14 12:24:51

ポイント27pt

ファイルの文字コードと指定されている文字コードが一致していないからです。

エディタで文字コードを指定して保存(通常指定しなければShiftJISになっています。)し、

それにあわせてメタタグかHTTPヘッダで文字コードを指定します。

メタタグ:<meta http-equiv="content-type" content="text/html;charset=Shift_JIS" />

ヘッダ:Content-type:text/html;charset=Shift_JIS

id:cabeliau No.3

cabeliau回答回数8ベストアンサー獲得回数12008/05/14 12:57:35

ポイント26pt

恐らく文字エンコードの指定が無いのかもしれませんね。

ご自身で作成されたPerlのサブルーチンの頭に、以下一文を足して頂くと案外簡単に解消します。

下記一文は、フォームページから既に挿入する必要があります。


↓<<サブルーチン>>

sub main {

print "Content-type:text/html; charset=Shift_JIS\n\n"; ←追加(文字コードをシフトJISにする)。

print <<"EOF";

<html>

<head>

<title></title>

</head>

<body>

 HTMLの内容

</body>

</html>

EOF

exit;

}

それ以外の方法として、jcode.plを使ったエンコード方法があります。

【参考URL】

 ミスティネット http://perl.misty.ne.jp/14.html

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません