Java如何打印字符串?

时间:2015-02-05 07:43:08

标签: java encoding

Java使用char数组存储String,String使用UTF-16存储字符。

对于我的ubuntu:

$ echo $LANG
en_US.UTF-8

如果我的java源文件的编码是UTF-8,主要内容是:

System.out.println("你好");

你好的含义是hello。对于UTF-8,都需要3个字节来存储。使用UTF-16,它们需要2个字节。

你好打印到屏幕时,Java发送到使用UTF-8或UTF-16编码的Linux OS的数据是什么?

2 个答案:

答案 0 :(得分:1)

System.outPrintStream,后者又使用StreamEncoder对字符串进行编码(至少在Java 6中)。

要求

StreamEncoder使用操作系统期望的编码。所以在你的情况下,它以UTF-8输出。

答案 1 :(得分:-1)

String text = "你好";
byte[] array = text.getBytes("UTF-8");
String s = new String(array, Charset.forName("UTF-8"));
System.out.println(s); 

如果您需要UTF-16

,可以尝试使用UTF-16