Java 如果我打算打印非英语字符,我应该在编辑器(NetBeans)中使用什么编码
我尝试将编辑器的编码设置为UTF-16。(Java字符串在内部将数据存储在UTF-16中,对吗?) 我输入以下代码Java 如果我打算打印非英语字符,我应该在编辑器(NetBeans)中使用什么编码,java,Java,我尝试将编辑器的编码设置为UTF-16。(Java字符串在内部将数据存储在UTF-16中,对吗?) 我输入以下代码 package helloworld; /** * * @author yan-cheng.cheok */ public class Main { /** * @param args the command line arguments */ public static void main(String[] args) {
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");
}
}
但是,输出不是我所期望的:
我尝试将编辑器编码格式更改为UTF-8,这次可以了
我爱你
文件种类
我可以知道为什么我需要将编辑器编码格式更改为UTF-8而不是UTF-16吗?Java字符串不是在内部将数据存储在UTF-16中吗?最好的方法是将这些字符串存储在属性文件中 这些字符串将以unicode格式存储,您可以用您的母语(例如日语)键入它们,然后运行native2ascii命令将它们转换为unicode
这样做的好处是,每个人都可以打开.java和.jsp文件。。。如果他们想使用这些短语,那么就打开属性文件…看起来像是基线平台(本例中为Windows)的一个限制,它不完全支持UTF-16 试着围绕这一点进行调查:
它们不是确定的答案,但可能会引导你 我知道。我只是想解释一下为什么上面的解释不起作用。我不知道如何解决您的问题,但是Java如何在内部存储字符串根本不重要,不应该让您担心。String类允许同时获取“char”(每个char最多16位)和代码点(32位/代码点),而这一点根本不会改变,无论String内部使用UTF-8或UTF-16还是某种Unicode扩展版本的EBCDIC。
我爱你
文件种类