dom4j生成xml文件,解析后出现中文乱码问题

背景(可以忽略)

项目在本地写完了,和队友测试都通过了,最后部署到云端,云端服务器是Windows Server 2008 R2 Standard操作系统,部署到云端后再次和队友测试一下,就出现了问题。

问题描述

云端服务器上使用dom4j生成words.xml文件,文件内容包含中文。使用EditPlus软件打开,部分内容如下:
云端words.xml

队友使用android设备下载该文件并来解析,错误发生了:最终解析内容成功,但是发现解析出来保存到数据库的中文内容是乱码

解决

1.推给队友

我的思考:我部署本地给你提供服务时你那边解析是正常的,我放到云端没有做任何修改,你那边是不是修改了,你看一下。
打脸:我让队友检查一下是不是你那边解析数据库的字符编码不是utf-8,或者你读的时候是不是设置了编码,队友就按照我的思路去检查,她说她的代码也没有变。
为了验证,她还把我们之前在项目部署在本地时生成的words.xml文件放到android中解析,解析后得到的内容没有乱码。
队友提示:你的文件内容是utf-8,但是你的文件保存到磁盘上上的编码是utf-8吗?

2.对比发现问题

  • 我把之前在本地服务器上生成的words.xml和在云端服务器生成的words.xml进行了对。
    上面图片是云端生成的words.xml文件,下面是之前在本地生成的words.xml部分内容:

本地生成words.xml
发现问题
两份文件内容都一样,声明编码格式encoding都是UTF-8,不同是两份文件保存在磁盘上的编码不同,云端是GBK(显示是ANSI),本地服务器保存的是UTF-8。问题就是文件声明的内容的编码和保存到磁盘上使用的编码不一致(?),至于具体的原理下面会解释

云端:encoding=UTF-8 保存编码:GBK
本地服务器端:encoding=UTF-8 保存编码:UTF-8

进一步发现
我把两份words.xml分别用Google Chrome浏览器打开,结果不一样。
encoding=UTF-8 保存编码:GBK 的words.xml:显示异常

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值