【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つでしょう。
その場に合わせて使い分けていくのもいいと思います。
また、他の方法は追々追加していきたいと思います。
さて、本当はもっと早くに変数に進むつもりだったのですが、次がやっと変数です。
この辺りから、プログラム!という感じになって多少難しくなっていきます。
皆さん、私と一緒に頑張りましょう〜!
|