linux下java乱码


当前第2页 返回上一页

①如果服务器是自主研发的,可以通过修改源代码,指定JVM读文件、写文件以及生成用户端浏览器所需的HTML文件时,字符串与二进制序列流转换时的编码方式,从而从根本上解决问题,增强服务器的适应性,在MyWebServer 2.0中,我就采用了这种方法,代码如下:

new BufferedReader(new InputStreamReader(new FileInputStream(jspfile),”GBK”)); 
new PrintWriter(serfile,”GBK”); 
new PrintWriter(new OutputStreamWriter(os,”GBK”));

②当然也可以在服务器的入口文件(即含有main子函数的文件)中修改JVM的“locale”设置,代码如下:

Locale.setDefault(new Locale(“zh”,”CN”));

③当采用商用服务器时,可以修改启动服务器的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找不到所需要的字库所致,可以采取不同的方法去解决,具体采用哪种方法处理还要结合具体的应用环境。

推荐:【Linux视频教程】

以上就是linux下java乱码的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

Linux下启动ssh失败的解决方法

如何收回一台或多台 ecs 实例的实例 ram 角色

虚拟机环境下Linux不能上网怎么办

Linux使用bitnami安装redmine的图文教程

Linux如何格式化硬盘

Linux怎么安装redis扩展

jenkins在Linux服务器上的安装教程(图)

Linux进程间通信的方式有哪些

如何为一块或者多块磁盘应用自动快照策略

如何使用bandwidthpackageitemtype共享带宽包描述信息

更多相关阅读请进入《Linux》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...