中文乱码的缘故分析总结

中文乱码的原因分析总结

 

Java的内核是Unicode的,也就是说,在程序处理字符时用Unicode来表示字符,但文件和流的保存方式是使用字节流。在Java的基本数据类型中,char是Unicode的,而byte是字节,因此在不同地环节,Java要对字节流和char进行转换。因为Java有着良好的跨平台性,对于Java信息系统来说,将会在不同OS平台编译运行。

 

同时,Java根据OS的默认编码字符集来决定字符串的初试编码,Java系统的输入输出都是采用OS的默认编码。所以运行Java程序时,如果字符集的编码选择不当,会出现乱码问题。

 

 

 

 

中文乱码现象:

(1)汉字变成?

 (2)有的汉字显示错误,有的则显示正确

(3)显示的中文不可读

 

 

 

 

解决方案:

设置输入输出为UTF-8编码