へたれCGI講座



9:Print命令でHTML出力編(Shift_JIS版)

【Shift_JISで出力】
 さて、次は色々と面倒なShift_JIS編に行ってみましょう。
まずは前回の例題と同じものをShift_JISで表示してみましょう。
一応記述しておきますと、以下のプログラムです。


1  #!/usr/bin/perl
2
3  #下の行は「これからHTMLを表示する」という意味です。
4  print "Content-type: text/html\n\n";
5  #ここからHTML開始
6  print "<HTML>\n";
7  print "<HEAD><TITLE>EUC-CGI-2</TITLE></HEAD>\n";
8  print "<BODY>「はなでーす」って<BR>きちんと表示される?\n";
9  print "</BODY>\n";
10  print "</HTML>\n";
11  __END__

では早速結果を見てみましょうか。
S-CGI-1.cgi

 あらあら…「表示」が文字化けしてますね〜。
このままでは何がなんだかわかりません。
ここで文字化け回避方法を勉強してみましょう。


■回避策1 「シングルクォーテーション(')とダブルクォーテーション(")」
 Perlの例題ソースをよく見てみてください。print命令の後は必ずダブルクォーテーションで
囲まれていますね? 実はこのダブルクォーテーションの部分、大雑把に言ってしまうと
シングルクォーテーションでもいいのです。ただ、多少違いがあります。

(')シングルクォーテーションの場合:文章をそのまま出力(HTMLは認識)。
(")ダブルクォーテーションの場合:変数や特定の式(改行(\n))も認識。

 ここで注意しなければならないのは、シングルクォーテーションで囲む場合、改行(\n)も
文章として認識されてしまい、文章に出てしまうという点です。
ちょっと実際に見てみましょうか。
S-CGI-2.cgi

ね?「\n」が表示されちゃっていますよね。
シングルクォーテーションにはこのような特徴があるので、あくまで文章のみ入れるように
しましょう。

■回避策2 「¥でうち消す」
 これは、文字化けしてる文字の横に「\」を置いて文字化けをうち消すという方法です。
今回は表示が文字化けしているので、「表\示」としてみましょう。
(シングルクォーテーションは使いません)
S-CGI-3.cgi

ちゃんと表示されましたね?

 他にもあるのですが主なものはこの2つでしょう。
その場に合わせて使い分けていくのもいいと思います。
また、他の方法は追々追加していきたいと思います。

 さて、本当はもっと早くに変数に進むつもりだったのですが、次がやっと変数です。
この辺りから、プログラム!という感じになって多少難しくなっていきます。
皆さん、私と一緒に頑張りましょう〜!


BACK NEXT
CGI-Index TOP