文字コードの問題

Perlは基本的にShift-JISには対応していません。

Shift-JISとは、一般的にWindowsのパソコンで使用される文字コードです。
他の文字コードを使用するときには、テキストエディタで保存するときに、Shift-JIS以外の文字コードを指定します。

またどういった問題が起こるかというと、たとえば次のような場合です。

#!/usr/local/bin/perl

print "Content-type: text/html\n\n";
print "表示";

これは特に問題がないように見えますが、実際に表示してみると次のようになります。

侮ヲ

これは『表』の文字コードが『955C』になっていて、『5C』がエスケープ文字『\(¥)』を表すからです。

[参考記事] Shift-JISの文字コード表

それぞれの文字コードをまとめると次のようになっています。

文字文字コード
955C
8EA6
958E
A6

つまり

表   示
955C 8EA6

となるはずのものが、『5C』が無視されるため

侮   ヲ
958E A6

となってしまうのです。

正しく表示させるには次のようにします。

#!/usr/local/bin/perl

print "Content-type: text/html\n\n";
print "表\示";

関連記事

スポンサーリンク

日付型のフォーマットにスラッシュを使ってはいけません(文字コードによって値が変わる)

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る