RakuでWindowsのターミナルに文字列を出力する方法
作成日:
目次
概要
Raku(旧Perl6)はWindowsでも使えるが、日本語Windowsのターミナルは普通文字コードがUTF-8ではなくCP932(Shift_JISの拡張)である。ソースコードをUTF-8で書いた場合、普通にsay
などをすると日本語などの非ASCII文字の出力は文字化けしてしまう。
本稿はその回避策のメモである。
前提
- バージョンは Rakudo v2023.12
- ソースコードはUTF-8で書く。
結論
$*OUT.encoding: 'windows-932';
my $name = "灯花";
say "こんにちは $name さん";
$*OUT
が標準出力なので、$*OUT.encoding: 'windows-932';
として標準出力の文字コードをCP932に変更すればよい。
参考
- encoding | Raku Documentation
- Variables | Raku Documentation
- Perl6 特殊変数チートシート - Dynamic variables #Perl6 - Qiita