- - PR -
RedHat9 + Perl 環境で日本語の文字化けを回避したい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-07-23 16:16
RedHat9 + Apache + Perl 環境を構築しました。
次に Perl構文で作成した pl ファイルを cgi_bin に格納して Win2000 の IE から呼び出しました。 すると、IE のエンコードが、SJIS となり漢字が正しく表示て くれません。エンコードを EUC にすると正しく表示されますが、 何度か SJIS→EUC に修正しても SJIS で開いてしまいます。 色々調べましたが、jperl が何やら必要なのでは? と思っていますが、何をどうしたらいいのか分かりません。 どなたか教えて頂けないでしょうか。 ちなみに pl ファイルは、文字コードは EUC (CRのみ) で作成しました。 |
|
投稿日時: 2004-07-23 16:51
こんにちは。
単純に生成したHTMLファイルの問題だと思いますけど。 head要素内に <meta http-equiv="Content-Type" content="text/html; charset=euc-jp" /> を記述されてはいかがでしょう。 |
|
投稿日時: 2004-07-23 17:19
「okutin」さん。
ご回答ありがとうございます。 HTML構文にご指摘のMETA文を入れました。 ----- < METAを挿入したPerl文 > ----- #!/usr/bin/perl use DBI; print "Content-type: text/html\n\n"; print "<html><head>\n"; print "<meta http-equiv="Content-Type" content="text/html; charset=euc-jp" />\n"; print "</head>\n"; print "<body>test</body></html>\n"; 正しく動作しませんでした。 META構文を削除すると正しく動作しました。 ----- < METAを削除したPerl文 > ----- #!/usr/bin/perl use DBI; print "Content-type: text/html\n\n"; print "<html><head>\n"; print "</head>\n"; print "<body>test</body></html>\n"; META を挿入する箇所はどこなのでしょうか。 よろしくお願い致します。 |
|
投稿日時: 2004-07-23 17:31
こんにちは。
挿入する個所はあってますよ。 ただ、「"」は「\"」にしないとダメだと思いますよ。 print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=euc-jp\" />\n"; [ メッセージ編集済み 編集者: okutin 編集日時 2004-07-23 17:38 ] |
|
投稿日時: 2004-07-23 17:35
こんにちは。
httpd.conf に AddDefaultCharset がありませんか? あるようでしたら、コメントアウトして Apache を再起動してみましょう。 |
|
投稿日時: 2004-07-23 19:02
こんにちわ(皆様)。
「okutin」さん。 META 構文ですが、ご指摘の通りに修正したら IE のソースは、正しく 指定した META 構文を表示してくれました。 「はゆる」さん。 httpd.conf に AddDefaultCharset が Shift JIS になっていました。 # でコメントにして、Apache を再起動したら正常に動作しました。 結論は、httpd.conf の構文が完璧でなかったようです。 皆様、ご指示いただきまして有難うございました。 |
|
投稿日時: 2004-07-23 21:54
Perl から出力する Content-Type の設定を
print "Content-Type; charset=EUC-JP\n\n"; と、キャラクタセットを含むようにすれば、 DefaultCharset の値は適用されなかったと思います。 DefaultCharset はあくまで charset が設定されていないときのデフォルト値なので。 |
1