解决java不能输出中文问题

冷不防 2023-06-30 02:20 119阅读 0赞

https://blog.csdn.net/c374963390/article/details/84806523 原文地址,不知道为什么不能快捷转发了,只能拷贝下来再发,谢谢作者!

喜闻乐见 今天还是研究HelloWold.java

这个基础的程序,今天继续昨天的研究让中文能够输出。

我开始认为我在UE里面设置保存UTF-8无DOM版的就可以随便输出任意语言了。

然后我就动手试,因为比起HelloWord还有师姐你好我更喜欢我爱中国这四个字。

大神勿喷我真是初学者- . -。

然后我就谨慎的又敲了一次:

public class China
{
public static void main(String[] args)
{
System.out.println(“我爱你中国”);
}
}

第一次编译不通过,因为第三行里面的void main忘写了System的S小写了。。。低级啊TAT我把它们改完后还是通知我:

E:\作品\java基础\Day01>javac China.java
China.java:5: 警告:编码 GBK 的不可映射字符
System.out.println(“鎴戞槸涓浗浜?);
^
China.java:5: 未结束的字符串字面值
System.out.println(“鎴戞槸涓浗浜?);
^

1.错误 1.警告

嘛,于是我开始找解决方法 ,网上查:

由于JDK是国际版的,在编译的时候,如果没有用-encoding参数指定JAVA源程序的编码格式,则javac.exe首先获得操作系统默认采用的编码格式,也即在编译java程序时,若不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,它的值为GBK),然后JDK就把我们的java源程序从file.encoding编码格式转化为JAVA内部默认的UNICODE格式放入内存中。

在UTF-8里,英文字符仍然跟ASCII编码一样,因此原先的函数库可以继续使用。而中文的编码范围是在0080-07FF之间,因此是2个字节表示(但这两个字节和GB编码的两个字节是不同的),用专门的Unicode处理类可以对UTF编码进行处理。

解决方法:

1.用记事本将代码保存为ANSI格式在编译。

2.在编译输出中文或者有关于中文的java文件时在cmd中输入:

javac -encoding UTF-8 ***.java

这样就能编译通过了,而且输出也是正常的中文。
————————————————
版权声明:本文为CSDN博主「c374963390」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/c374963390/article/details/84806523

发表评论

表情:
评论列表 (有 0 条评论,119人围观)

还没有评论,来说两句吧...

相关阅读

    相关 printk输出问题

    printk是内核调试的重要手段,我们知道查看printk的打印信息可以用dmesg命令来查看,但是有时你会发现,你要的printk打印并没有打印出来,这是为什么呢? 原因是

    相关 response解决中文输出乱码问题

         由于计算机中的数据都是以二进制形式存储的,因此,当传输文本时,就会发生字符与字节之间的转换。字符与字节之间的转换是通过查码表完成的,将字符转换成字节的过程称为编码,将