2013-03-08 60 views
0

我试图打印如下的一些中文字符,但这不起作用。我想应该有一些编码需要完成。你能帮忙吗?如何确定正确的编码?

public static void main(String[] args) 
{ 
    String myString = "奥妙洗衣粉"; 
    System.out.println(myString); 

    // Output in eclipse: Some characters cannot be mapped using Cp1252 character encoding. 
    // Either change the encoding or remove the characters which are not supported 
    // by the Cp1252 character encoding. 
} 

编辑:我怎样才能做到这一点(变化/应用编码)打印字符串之前编程?

+0

检查Eclipse首选项工作区编码。 – dkateros 2013-03-08 09:18:45

回答

0

一个tutorial您可以更改文件输出的默认编码:

new PrintWriter(fileName, "UTF-8"); 

另一个问题,编译器只能读取ASCII字符(但JVM可以阅读其他人也)。这意味着,字符串不能从外来字符构建。正确的方式做到这一点,决定了字符的Unicode - 4字符的十六进制代码 - 而建立这样的:

String myString = "\u3b12\uc2d4hello" 

这将创建的第一个字符的代码3b12(与\u Unicode字符转义)的字符串+ c2d4 +你好。

这里是我的输出:

㬒싔hello 
+0

那么这里'fileName'是什么? – yonan2236 2013-03-08 10:16:56

+0

应该输出的地方。 – Mordechai 2013-03-08 10:19:22

1

Windows-1252字符编码不支持您的代码中的字符。使用UTF-8。

+0

如何在打印字符串之前以编程方式执行此操作? – yonan2236 2013-03-08 09:19:42

+0

你不需要在Java本身做任何事情。 Java默认支持在其字符串中内置UTF。 – Will 2013-03-08 09:21:00

+0

更改*文件*的编码。 Eclipse为项目中的所有文件提供了一种方法。 – 2013-03-08 09:21:15

0

eclipse中的控制台默认不支持这些字符。 这里是对