• ベストアンサー

"Content-type:text/html;charset=shift_JIS\n\n" がテキスト表示されてしまう。

Wernerの回答

  • Werner
  • ベストアンサー率53% (395/735)
回答No.1

>CGIで print "Content-type:text/html;charset=shift_JIS\n\n"; を出力すると \nが多すぎ。 2つ続きの\nはHTTPヘッダの終了を意味します。

goku3
質問者

お礼

ご回答ありがとうございました。 \n 2つの意味について理解しました。 すべての出力の最後に空行を出力するということですね。 やってみます。

関連するQ&A

  • charset=Shift_JIS

    4つのhtmlを作成し metaタグを以下のように記述しました。 <meta http-equiv="Content-Type" content="text/html; charset=SHIFT_JIS"> <meta http-equiv="Content-Style-Type" content="text/css"> <link rel="stylesheet" type="text/css" href="css/style.css"> <script language="javascript1.2" src="js/openex.js"></script> <link rel="stylesheet" type="text/css" href="css/style.css"> 2つのファイルが、IEにおいてエンコード(UTF-8)を選択しないと見れません。 オーサリングソフトは、ホームページビルダーV9です。 最初に作成したときは、気づかなかったのですが、設定において ”文字エンコードをmetaタグで指定する”の設定項目を自動にしておりました。 すると 2つのファイルが自動で charsetが、UTF-8になってたようです。 その後設定をSHIFT_JISにし、charset=UTF-8となったところは charset=SHIFT_JIS"には、後で書き換えました。 ページを作成する際、テンプレートを作成して 4つのファイルを作成したはずなんですが、 なぜ こうなってしまったのかが わかりません。 charset=SHIFT_JIS"を指定してるのに なぜUTF-8を選択しないと見れないのでしょう? かなり 困っています。何度もファイルを書き換えましたが、解決しません。わかる方 なにとぞご教示ください。

  • Content-type: text/htmlが表示されてしまう

    PerlでCGIを作成しております。 海外のサーバーでCGIをアップしたところなぜかすべてのCGIで Content-type: text/html がページ上部に表示されてしまいます。 そのファイルは日本のサーバーでは問題なく動作しております。 print "Content-type: text/html\n\n"; print "<html><head><title>$site_title</title></head>\n"; 上のようにプログラムは書いております。 これは言語に依存するのですか? ご教示お願いします。

  • charset=UTF-8なのにShift-JISになっちゃいます!

    <META http-equiv=content-type content="text/html; charset=UTF-8"> と記述して、ブラウザ(IE6)で確認したのですが真っ白な画面になり、ブラウザのエンコードを確認した ところShift-JISになっていました。自動選択にしてもShift-JISになってしまいます。 UTF-8でどうしてもウェブを作りたいのですがエンコードがShift-JISにならない方法を教えていただけないでしょうか? 使っているエディタは秀丸です。

    • ベストアンサー
    • PHP
  • shift-jisからutf8に変換

    解決に至らなかったので再度お尋ねします。 CGIのコードを見てくださいますか。 http://hotpegasus.bov.jp/mail.txt (必要な部分だけ表示しておりますので、そのままアップしても機能はしません) 改修した箇所は以下のです。 <meta http-equiv="Content-Type" content="text/html;charset=shift_jis"> &jcode'h2z_sjis(*contenido) &jcode'convert(*subject,'sjis'); &jcode'convert(*infor,'sjis'); &jcode'convert(*contenido,'jis'); &jcode'convert(*res_msg,'jis'); print "Content-type: text/html;charset=shift_jis\n\n"; ↓ sjis関連をutf8に書き換え、jcodeの頭文字をJに書き換え <meta http-equiv="Content-Type" content="text/html;charset=utf8"> &Jcode'h2z_utf8(*contenido) &Jcode'convert(*subject,'utf8'); &Jcode'convert(*infor,'utf8'); &Jcode'convert(*contenido,'utf8'); &Jcode'convert(*res_msg,'utf8'); print "Content-type: text/html;charset=shift_utf8\n\n"; require 'jcode.pl'をuse Jcode;に書き換え ※jcode::" となっている箇所はありません 結果 メールフォームはエラーや文字化けは出なくて成功しましたが、メール受信の際、ThunderbirdPortableメーラーでは全て文字化け(文字エンコーディングは「日本語ISO-2022jp」となっています)、ウェブメールのgmailでは内容は文字化けになっていませんが、タイトルが文字化けになっています。 どこが悪かったのでしょうか? 宜しくお願いします。

    • 締切済み
    • CGI
  • Content-Typeの大文字

    すいません、素朴な疑問です。 <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> での「Content-Type」や「Shift_JIS」の大文字はこうしなければいけないのでしょうか。 前から疑問に思っていたのですが、小文字にしてもこれといって不具合もでないようですし、人に聞いても「別に小文字でもいいと思うが慣習では?」「それは大文字にしたほうがいい」とそれぞれ言うのですが、明確な理由が出てきません。 調べてもmetaの説明をしているだけで大文字について言及している所は分かりませんでした。 <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta http-equiv="Content-Style-Type" content="text/css"> の「Content-Script-Type」「Content-Style-Type」もそうなんですが、理由があるのでしょうか。 そんなもの深く考えずに大文字にしておけばいいじゃん(笑)とも思いますが、 単純に分かりやすいように一文字目を大文字にしているだけなのでしょうか。それならそれでスッキリするのですが。何か明確な根拠があるのかもとも思いまして。 その辺、詳しい方からお教えいただけるとありがたく思います。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • shift_jisとutf-8

    お世話になります。 先日より文字コードのことで、頭を悩ましています。 サイト制作の時に、フルCSSを目指し、他の人が作っていたCSSを利用してDreamweaverで制作を始めました。 その際、文字コードがutf-8になっていたのですが、ブラウザによっては文字化けしていおり、宣言の部分をshift_jisに変更しました。 この部分です。<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> ちなみにDreamwerverではデフォルトの文字コードはshift_jisなので、わざわざ変更しない限り、制作したページはすべてshift_jisで書かれているようです。 また、使わせてもらったCSSのページには一行目に@charset "utf-8";が入っていたのですが、よくわからないのでこの行をはずしてみたところ、CSSの設定が反映されない部分が出てきました。(これが原因かわかりませんが、この一行を入れると直ったみたいで・・) そこで質問なのですが、HTMLの方ではshift_jis、CSSファイルではutf-8という設定でも別にかまわないのでしょうか?(統一しなくてもいいのか?) また、一行目の@charset "utf-8";を省くと問題がありますか? 統一した方がいい場合は、制作したものをすべてutf-8に(またはshift_jisに)するにはどうしたらいいのでしょうか? 別に統一する必要がなければ今回はこのままにして、次回からきちんとしたものを作って行きたいのですが・・ どうぞよろしくお願い致します。

  • Shift_JISが選ばれてしまう

    韓国語のサイトを作成したのですが 文字コードを「euc-kr」にして作成しました。 しかし、実際にページを開くと「Shift_JIS」 が選ばれてしまい、文字化けが起きてしまいます。 <meta http-equiv="Content-Type" content="text/html; charset=euc-kr"> 上記のような記述なのですが 何か問題がありますでしょうか。 また、その他考えられる原因がありましたら 知恵をお借りできれば幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • HTMLがSHIFT-JISにならない

    いつもお世話になります<(_ _)> 携帯電話用サイトを作っているのですが、HTMLファイルの最初に <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=SHIFT_JIS"> と設定しても、PCでアクセスした時にUTF-8で表示され文字化けされてしまいます。 HTML自体の文字コードはSHIFT-JISで保存されております。 手元に携帯電話がないので、まだ携帯表示は確認していませんが、スマートフォン(Android)で見ても文字化けしています。 なぜcharsetでSHIFT_JISを指定し、ファイルもSHIFT_JISで保存しているのにも関わらず、UTF-8になってしまうのでしょうか・・・? 同じような現象をご存じのかた、是非ともお力添え下さい。 宜しくお願い致します<(_ _)>

    • ベストアンサー
    • HTML
  • EUCで保存されたスクリプトにてShift_jisでのHTML出力

    perl見よう見まねで改造ができるレベルの者です。 表題の件ですが、ある登録スクリプトをEUCで保存し、登録データファイルもEUCで保存を行っているのですが、携帯からも対応させる為に、携帯用ページではShift_jisで表示を行いたいと思っています。 $word = "ああああ"; &jcode'euc2sjis(*word); 上記のようなコードで、EUCで保存されたスクリプト内の文字がShift-JISに変換されるというのを見つけたのですが、これがprint文の場合どうすれば良いのかわかりません。 例えば、 print "Content-type: text/html;charset=shift_jis\n\n"; print <<_HTML_; <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <body> <form method="POST" action="CGIファイル"> 登録項目1<br> <input type="text" name="touroku1" value="$in{'touroku1'}"><br> 登録項目2<br> <input type="text" name="touroku2" value="$in{'touroku2'}"> </form> </body></html> _HTML_ 上記のようなHTMLをShift_jisで表示する場合、どのようにすればよいのでしょうか? use encoding 'euc-jp', STDOUT=>'shift_jis' while(<>){ print $_; } 上記のようなコードも調べたのですが、今一適用方法が解らない状況です。 また、携帯用ページではShift_jisで表示を行いたいのと同時に、登録データファイルにはEUCで保存されるようにする方法もご教授頂けますと幸いです。 宜しくお願い申し上げます。

    • ベストアンサー
    • Perl
  • Dreamweaverで「shift_jis」→「utf-8」

    DreamweaverMX2004を使用しています。 以前に文字コードをshift_jisで作ったhtmlを全てutf-8に変更したいと思っています。 これを行う場合、Dreamweaverのコードビュー画面で <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> ↓ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> と直接手で書き換えるだけで、文字コードはDreamweaverが自動的に保存しなおしてくれるのでしょうか? (もしくはメニューの「ページプロパティ」でエンコーディングを変更できるようですが、どちらの方法にしても) また、これをDreamweaverではなく、テキストエディタ(TeraPad等)で行う場合、どのような方法になりますでしょうか。 また、UTF-8でhtmlを作成する際、shift_jisとは別の点で何か注意しなければならないことはありますか? よろしくお願い致します。