properties类文件读取与index.html接收中文乱码处理记录

        各种设置太麻烦,记不清楚各个地方文件格式,只能肯定就是ISO-8559-1,UTF-8,GBK三种编码格式。

        一、properties读取中文乱码

        用java写入properties文件时用的是UTF-8,使用这个文件的编码格式也是UTF-8但就是读出来就变乱码,把全部Eclipse能设置的都设成了UTF-8还是乱码,且读到的数据无法与MySQL数据库读出的数据进行比对,在Eclipse中打印出来也是乱码。

        二、index.html回传中文乱码

        文件传回来的中文也变成了乱码,也无法数据库读出来的数据比对,打印到控制台也是乱码。

        三、解决办法

        针对每个出乱码的地方都采用

       new String(str.getBytes("ISO-8859-1"),"UTF-8")或者是new String(str.getBytes("UTF-8"),"UTF-8")亦或是new String(str.getBytes("GBK"),"UTF-8")进行试验。因为我能看到的地方都已改成了UTF-8,所以这样试。其中str是字符串。如:

        index.html传回的中文用以下代码处理后变成正常中文,可打印到控制台,也能与数据库内容对比。

        porject_name = "%" + new String(request.getParameter("project_name").getBytes("ISO-8859-1"),"UTF-8") + "%";

        从properties读出的表头中文用以下代码处理后也能正常专到网页中显示在表头上

        out.print("<th>" +new String(prop.getProperty(data.getColumnName(i)).getBytes("ISO-8859-1"),"UTF-8") + "</th>");

        但在不同的机子上使用时出现了同一个地方编码格式不一样的问题,可能是创建文件方式不一样引起的,用java的Map<String,String>写进properties的数据在读出来时的转换方式用

         out.print("<th>" +new String(prop.getProperty(data.getColumnName(i)).getBytes("UTF-8"),"UTF-8") + "</th>");

        转换后才正常,前后都是UTF-8看上去象是没有转过一样的,但就是这样写了才解决。在站内找了一下,也是写这个方法的文章中有答案,可惜没记住,只记得大意是指他告诉JVM我存进去的是什么格式,取出来之后要转成什么格式。总之是前后都一样,但不转就是不行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值