Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果我打算打印非英语字符,我应该在编辑器(NetBeans)中使用什么编码_Java - Fatal编程技术网

Java 如果我打算打印非英语字符,我应该在编辑器(NetBeans)中使用什么编码

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) {

我尝试将编辑器的编码设置为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) {
        // 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。
我爱你
文件种类