まつ
2000/05/27(土) 22:29:37
サーバーに入っているperlのバージョンについてですが、
私の使用しているサーバーには
his is perl, version 5.005_03 built for i386-linux
(with 1 registered patch, see perl -V for more detail)
Copyright 1987-1999, Larry Wall
Japanization patch 4 by Yasushi Saito, 1996
Modified by Hirofumi Watanabe, 1996-1999
jperl5.005_03-990822
EUC version
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5.0 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using `man perl' or `perldoc perl'. If you have access to the
Internet, point your browser at
http://www.perl.com/, the Perl Home Page.
が入ってます。
やたらと、他で普通に動いて居たCGIが文字化け連発するので
気になったのですが、このバージョンって一般的なんでしょうか?
EUC Version や jperl がどうたらこうたらって部分が気になります
B-Cus
2000/05/28(日) 00:06:52
> ↑ という事は、サーバーはlinuxなので、今の私の状況では
> EUC Versionは関係ないという事ですよね?
いいえ。Linux だから、ということはありません。基本的に
OS というのは文字コードを限定しません (Windows は知らない)。
一応まとめておくと、
perl はスクリプト中で日本語を扱える。
- できるならスクリプトを EUC にするのが一番よい。
- SJIS だと文字によっては \ や @ のコードが含まれているので
化けることもあるが、使えなくはない
- ISO-2022-JP (JIS) はダメ
で、jperl というのは japanized patch を当てた perl。
日本語単位での split などが可能になる。このとき、
スクリプトが EUC で書かれているか、SJIS で書かれて
いるかということに関係するのが
>#!/usr/local/bin/jperl -Leuc
>#!/usr/local/bin/jperl -Lsjis
や
> EUC version
の部分。
ただし jperl でも、普通に使うと perl として動作する。
http://www.jp.FreeBSD.ORG/QandA/HTML/1218.html
# なので、ほとんどの人は jperl の機能を使っていないはず。
> print "Content-type: text/html; charset=Shift_JIS\n\n";
これはブラウザが文字コードを解釈するときのヒントを
与えているようなものなので、関係ありません。
今回のは「perl がスクリプト内の日本語をどう扱うか」という問題です。