(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を読むべしー
[上に]
[前に]
[次に]