2010-06-11 31 views
4

我尝试将编辑器的编码设置为UTF-16。 (?Java的String存储在UTF-16内部的数据,右)如果我打算打印非英文字符,我应该在编辑器(NetBeans)中使用什么编码

alt text http://sites.google.com/site/yanchengcheok/Home/helloworld.png

我键入下面的代码

package helloworld; 

/** 
* 
* @author yan-cheng.cheok 
*/ 
public class Main { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     // TODO code application logic here 
     System.out.println("我爱你"); 
     System.out.println("\u6587\u4EF6\u79CD\u7C7B"); 
    } 

} 

但是,输出是不是我所期待:

alt text http://sites.google.com/site/yanchengcheok/Home/helloworld1.png

我爱你� 
文件种类� 

我试图改变th e编辑器编码格式转换为UTF-8,这一次它可以使用!

我爱你 
文件种类 

我可以知道为什么我需要将编辑器编码格式更改为UTF-8而不是UTF-16吗? Java String是否在UTF-16内部存储数据?

+0

不知道如何解决您的问题,但Java如何在内部存储字符串没有任何重要性,应该不关心您。无论String内部使用UTF-8还是UTF-16或一些Unicode,String类都允许同时获得“char”(每个字符最多16位)和代码点(32位/ codepoint),并且根本不会改变-Extended-版本的-EBCDIC。 – NoozNooz42 2010-06-11 02:32:49

回答

3

最好的方法是将这些字符串存储在属性文件中。

这些字符串将存储在Unicode格式,你可以在你的母语输入它们(例如日本),之后就是运行的native2ascii命令将它们转换为Unicode ...

与是优势每个人都可以打开.java和.jsp文件...如果他们想使用这些短语,那么他们打开属性文件...

+0

我知道。我只是想解释为什么上述不起作用。 – 2010-06-11 02:09:00