Java在linux下出现乱码的原因和解决方法


这篇文章将为大家详细讲解有关Java在linux下出现乱码的原因和解决方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。a)基于awt(swing)的图形界面程序中文显示乱码
基于awt(swing)的图形界面程序中,一般会出现菜单中的中文显示乱码,其原因一般是JVM找不到用来显示中文的字库,JVM在原始的安装下是没有中文字库的,而linux的发行版本又各不相同,其字库存放的路径和名字又各不相同,所以JVM一般是找不到linux操作系统内带的字库,解决方法是让JVM能找到linux操作系统内带的字库,如在Redflag 6.0下可以通过下面命令解决:一般不需要修改JRE/lib/目录下的字体配置文件(fontconfig.OS.Version.properties)。b)基于B/S结构的JSP(Servlet)的系统用户端浏览器中文显示乱码页面中的中文显示乱码对于像HTML的静态文件,其文件的字符集只要和文件中处所设置的一样即可。对于像JSP和Servlet动态文件由于需要经过编译,在运行是由JVM解释class文开发云主机域名件而产生用户端浏览器所需的HTML文件,如果产生中文乱码,则一般是由编译和运行过程中产生的。如果用商用的发行版Linux和服务器,一般只要将JSP或Servlet文件保存为UTF-8字符集,将中设置为UTF-8即可。如果还出现乱码则可以通过以下方法解决:①如果服务器是自主研发的,可以通过修改源代码,指定JVM读文件、写文件以及生成用户端浏览器所需的HTML文件时,字符串与二进制序列流转换时的编码方式,从而从根本上解决问题,增强服务器的适应性,在MyWebServer 2.0中,我就采用了这种方法,代码如下:②当然也可以在服务器的入口文件(即含有main子函数的文件)中修改JVM的“locale”设置,代码如下:③当采用商用服务器时,可以修改启动服务器的shell文件,在启动服务器前设置环境变量“export LC_ALL=zh_CN.UTF-8”,从而改变本控制台下默认的“locale”值。④当然也可以修改操作系统的“locale”设置,但由于修改操作系统的“locale”设置将会影响到其他应用程序,所以一般采用该方法。采用上述方法的主要原因是,当JVM在首次起动时,将会把操作系统的“locale”设置为JVM的默认“locale”,在操作系统没有设置“locale”值时,JVM将会把JVM的缺省的“locale”设置为JVM的默认“locale”,当然也可以在运行应用程序时修改JVM的默认“locale”设置,在JVM进行字符串与二进制序列流相互转换时,如果指定了编码方式,将以指定的编码方式转换,否则根据JVM的默认“locale”进行转换。结论 Java语言在linux下中文显示产生的乱码,主要与JVM的字库、操作系统的locale设置、JVM的默认locale设置、应用程序中的locale设置以及应用程序中直接指定的二进制序列流与字符串转化的字符集有关。是由于二进制序列流和字符串相互转化过程中所采用的字符编码方式不同或者JVM找不到所需要的字库所致,可以采取不同的方法去解决,具体采用哪种方法处理还要结合具体的应用环境。关于Java在linux下出现乱码的原因和解决方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

相关推荐: cdn加速依赖哪些技术支持

与其他CDN服务商相比,开发云CDN的主要优势包括稳定快速、性价比高、简单易用、高效智能。比较多的用户会问到稳定快速这个优点,一般来说,开发云的CDN特点是分担源站压力,避免网络拥塞,确保在不同区域、不同场景下加速网站内容的分发,提高资源访问速度。以下给大家介…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 04/02 18:54
下一篇 04/02 18:54