2016-04-03 11 views
0
my $star = 'इस परीक्षण के लिए है'; 

この文字列をそのままエンコードを使用して印刷します。英語以外の文字を端末に印刷するにはどうすればよいですか?

+0

端末に表示されます持っていることができるはずあなたの端末を提供し、今

それを確認し、変更するchcpコマンドを使用しますあなたはターミナルですか?端末がUTF8を処理する場合、変数をSTDOUTに出力できるはずです。 「PerlからUTF-8を出力するにはどうしたらよいですか?」を参照してください。(0120-18753-1) –

+0

私はLinuxのターミナルとウィンドウを使用しています端末 –

答えて

4

あなたは、スクリプトがUTF-8でエンコードされたPerlを伝えるために、あなたのプログラムの先頭に声明

use utf8; 

を必要としています。また

use open qw/ :std :encoding(UTF-8) /; 

がUTF-8のデフォルトの出力エンコーディング

あなたの端末がUTF-8の出力を期待しなければならない作るために書くことができます。 Linuxでは、あなたは、これは通常UTF-8あるべき

echo $LC_CTYPE 

変数LC_TYPE環境を確認する必要がありますが、これはコードページで行われているWindows上で

ない場合、あなたはそれを変更することができます。 For UTF-8 you need code page 65001。表示したい文字をカバーしたフォントを使用している、あなただけの print $starテキストはどの

+1

+1 Windows上で 'cmd.exe 'を使用している場合は、[problems](https://www.nu42.com/2014/05/utf-8-ouput- from-perl-and-c-programs-in.html)を参照してください。 [':unix'レイヤー](https://www.nu42.com/2014/05/utf-8-output-from-perl-in-cmdexe-layers.html)を使うように' STDOUT'を設定すると助けになりそうです。 [ConEmu](https://conemu.github.io/)のようなコンソールコンテナを使用すると問題が隠され、ファイル出力が正常に動作します。また、 'cmd.exe'コンソールをコードページ65001に設定すると、キーボード入力が正しく機能しません。等 –

関連する問題