java arm 导出 报错 java导出乱码

您所在的位置:网站首页 eclipse文件路径中文报错 java arm 导出 报错 java导出乱码

java arm 导出 报错 java导出乱码

2023-06-26 11:03| 来源: 网络整理| 查看: 265

问题背景:javaWeb项目导出文件名乱码。本地window7调试项目导出文件名正常,线上linux(centos7)环境导出文化名乱码。 依据百度经验做尝试: **1)**使用String newStr = new String(“xxx”.getByte(“字符类型1”),“字符类型2”)并没有起到任何积极作用;后来得知,此方法的用途是这样的:java程序获取到一个字符串(各种可能的途径获取),发现此字符串是乱码的(可以直接控制台打出来或者debug看),然后可以用这个new String方法将乱码的字符串转为正常中文(前提是你要知道乱码字符串的编码方式,然后用newStr = new String(乱码字符串.getBytes(乱码字符串的编码字符集),java项目字符集),这个newStr就是正常显示的中文字符串。)所以我认为这个方法不能解决我的问题,因为我其中一个linux的系统字符集就是utf-8(en_US.UTF-8),而我的项目是utf-8的 **2)**使用URLEncode(“xxx”,"")与URLDecode(“xxx”,"")并没有起到任何积极作用;后来得知,此方法用于url交互,为了防止url中的中文信息乱码倒置信息丢失或错误,encode与decode要成对使用的,前端可以先encode用字符集c1编码,然后后端对应用decode用c1编码,当然前后端传输只是一个案例,此方法应当可以作为防止传输造成乱码的一种策略。所以我认为乱码问题是不能用encode与decode这两个方法解决的。 **3)**修改linux系统的字符集。 查百度知,最有可能是linux系统默认编码不是"UTF-8"导致的,使用locale命令查询linux默认字符集,发现不是"zh_CN.UTF-8"(大家注意zh_CN.UTF-8与en_US.UTF-8的差别,en_US.UTF-8我这里不行的) 第一种修改方式: 在tomcat的catalina.sh中加入export LC_ALL=“zh_CN.UTF-8”,然后重启tomcat服务器,竟然问题直接就解决了,中文名不乱码了。后来得知,这句话的作用是 将tomcat运行的linux系统环境编码临时修改为目标编码,其实这样就是妥妥得解决问题了,而且不用去改linux服务器本身得字符配置,这个配置只对tomcat有效而已。并不会影响到系统中其他应用。 第二种修改方式: 直接修改linux系统得默认字符集,即修改locale配置。配置的最终结果应当是这样的,locale命令列出来的变量,除了LC_ALL可以为空,其他都需要是"zh_CN.UTF-8"。如何配置查百度应该可以,我会再写一篇关于locale配置的经验。 完(Aronc 20210327)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3