(perl) print文、全角空白2つで文字化け?

[上に] [前に] [次に]
茶しぶ男 2000/05/18(木) 14:55:35
perl(5)で下の文を組んだ場合(文字コードはSHIFT-JISです)

print <<_EOF;
あいうえお  かきくけこ
_EOF

(「あいうえお」と「かきくけこ」の間に全角空白が2つ入っています)

「か」表示のところで文字化けしてしまいます。
とりあえず解消法としては、

print <<_EOF;
あいうえお  
かきくけこ
_EOF

(「お」の後に全角空白2つ入っています)

としていますが、どうして文字化けが起きてしまうのか、ご存知の方いらっしゃいましたらお教え下さい(全角空白1つの場合は文字化けしないようです)。

sadahiro 2000/05/18(木) 20:39:20
>print <<_EOF;
>あいうえお  かきくけこ
>_EOF
これをwindows98上で,ActivePerl (version 5.005_03, APi522e.exeからインストール)
で動作させましたが,文字化けせずに出力しました.
シフトJISの全角空白の第2バイト(\x40)の @ が変数展開に
関与することがあるのかも?と思ったのですが,よくわかりません.

seea 2000/05/20(土) 06:52:17
ごくまれに、Win32版JPerl5で文字化けが発生したり、エラーとなる
現象を確認しています。どうしてそうなるのかは不明です。

'_EOF' とすることで、うまくいくこともあります。

EUC 2000/05/21(日) 15:34:20
EUCは使えない環境?

べし 2000/05/23(火) 17:31:24
print <<_EOF;
あいうえお  
かきくけこ
_EOF
でなぜ文字化けしないか。
改行コード\nはいってるからじゃない?

print "あいうえお  \nかきくけこ";
でもいいとおもふ。

print "あいうえお  \かきくけこ";
でもいいとおもふ。
あとは、http://www.tohoho-web.com/wwwkanji.htmを読むべしー

[上に] [前に] [次に]