问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

读取xml文件获取String字符串为乱码,怎么解决

发布网友 发布时间:2022-04-23 13:49

我来回答

3个回答

懂视网 时间:2022-04-06 05:48

php调用java传递xml字符串乱码的解决办法:首先使用CURL在命令行中完成请求;然后将调用接口时的【Content-Type:application/json】改成【application/xml】即可。

php调用java传递xml字符串乱码的解决办法:

这两个工作需要,给一个php同事提供java接口,参数内容:

<xml>
<ToUserName><![CDATA[wxcc878e3a91463bb5]]></ToUserName>
<FromUserName><![CDATA[on2BF1J3NBTUCFChovU-CNOs1MxU]]></FromUserName>
<CreateTime>1348831860</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[this is a test]]></Content>
<MsgId>1234567890123456</MsgId>
<BrandId><![CDATA[5]]></BrandId>
<HotelId><![CDATA[5]]></HotelId>
</xml>

request header:

method:POST。

由于客观原因,不能直接调用,所以自测接口时用的postman,接口调用一切正常。BUT,上线以后,测试时一直报

org.dom4j.DocumentException: Error on line 1 of document : 前言中不允许有内容。 Nested exception: 前言中不允许有内容。

但是日志输出:

<xml><ToUserName><![CDATA[wxcc878e3a91463bb5]]></ToUserName><FromUserName><![CDATA[on2BF1J3NBTUCFChovU-CNOs1MxU]]></FromUserName><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[123]]></Content><BrandId><![CDATA[5]]></BrandId><HotelId><![CDATA[5]]></HotelId></xml>

标签中多了转义字符,使用正则替换:xml.replaceAll("</","</");,之后输出正常。

但是上面的异常信息还在。。。。。。

网上几乎一致的解决方案:用编辑器打开另存为,修改编码格式。程序怎么会这么搞!!!

在同事的协助下,使用CURL 在命令行中请求:

curl -X POST 
 http://localhost:21010/wx_reply/reply2User 
 -H 'cache-control: no-cache' 
 -H 'content-type: application/xml' 
 -H 'postman-token: 08ae772c-7891-aaa2-01ef-30dccf5ffac0' 
 -d '<xml>
<ToUserName><![CDATA[wxcc878e3a91463bb5]]></ToUserName>
<FromUserName><![CDATA[on2BF1J3NBTUCFChovU-CNOs1MxU]]></FromUserName>
<CreateTime>1348831860</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[this is a test]]></Content>
<MsgId>1234567890123456</MsgId>
<BrandId><![CDATA[5]]></BrandId>
<HotelId><![CDATA[5]]></HotelId>
</xml>'

发现参数实际是:

%3Cxml%3E%0A%3CToUserName%3E%3C%21%5BCDATA%5Bwxcc878e3a91463bb5%5D%5D%3E%3C%2FToUserName%3E%0A%3CFromUserName%3E%3C%21%5BCDATA%5Bon2BF1J3NBTUCFChovU-CNOs1MxU%5D%5D%3E%3C%2FFromUserName%3E%0A%3CCreateTime%3E1348831860%3C%2FCreateTime%3E%0A%3CMsgType%3E%3C%21%5BCDATA%5Btext%5D%5D%3E%3C%2FMsgType%3E%0A%3CContent%3E%3C%21%5BCDATA%5Bthis+is+a+test%5D%5D%3E%3C%2FContent%3E%0A%3CMsgId%3E1234567890123456%3C%2FMsgId%3E%0A%3CBrandId%3E%3C%21%5BCDATA%5B5%5D%5D%3E%3C%2FBrandId%3E%0A%3CHotelId%3E%3C%21%5BCDATA%5B5%5D%5D%3E%3C%2FHotelId%3E%0A%3C%2Fxml%3E=

也就是说:

spring对request中body的内容进行了encode。使用URLDecode.decode(xml后得到了正常的内容,但发现参数后面多了一个=(看上面的参数)。

最终检查发现:是php同事调用接口时的Content-Type:application/json,改成application/xml后,问题解决了。

想了解更多编程学习,敬请关注php培训栏目!

热心网友 时间:2022-04-06 02:56

1首先打开XML文件
2发现文件中的中文是乱码状态,找到开头的这段代码
<?xml version="1.0" encoding="ISO-8859-1"?>

3将代码修改为<?xml version="1.0" encoding="gb2312" ?>后保存退出,再打开文件

4你会发现之前的乱码已经全部是中文了,可以想如何修改就怎么修改了
5有些文件不支持中文字符,编辑完成后将编码修改成原来的再保存,防止出错。

热心网友 时间:2022-04-06 04:14

这种情况一般都是编码不对,都用utl-8
读取xml文件获取String字符串为乱码,怎么解决

1首先打开XML文件 2发现文件中的中文是乱码状态,找到开头的这段代码 &lt;?xml version="1.0" encoding="ISO-8859-1"?&gt; 3将代码修改为&lt;?xml version="1.0" encoding="gb2312" ?&gt;后保存退出,再打开文件 4你会发现之前的乱码已经全部是中文了,可以想如何修改就怎么修改了 5有些文件不支持中文...

如何解决XML文档中的乱码?

2. 检查XML文件的格式:确认XML文件是否正确格式化。有时,错误的格式化会导致文件内容难以阅读。您可以尝试重新格式化文件,使其结构更加清晰。3. 使用在线XML格式化工具:如果您不想安装额外的软件,可以使用在线的XML格式化工具,如Beautify XML或Online XML Formatter,来格式化您的XML文件,使其易于阅读。...

xml文件打开后乱码怎么解决?

1、xml文件打开后乱码是内容的编码格式错误,选择以UTF-8格式编码即可。2、工具/材料:以Notepad++、xml文件为例。3、首先在桌面上,选中“xml文件”图标。4、2、然后在该界面中,右键点击“打开方式”里“Notepad++”选项。5、3、之后在该界面中,点击顶部工具栏里“格式”按钮。6、4、接着在弹出...

xml乱码怎么处理?xml中文乱码解决方法

1. XML文件打开后出现乱码,通常是因为文件编码格式不正确。解决办法是选择正确的编码格式,如UTF-8。2. 工具和材料:以Notepad++为例,打开一个XML文件。3. 在桌面上找到XML文件的图标。4. 右键点击文件图标,选择“打开方式”,然后选择“Notepad++”。5. 在Notepad++界面中,点击顶部工具栏的“格式...

读取xml文件获取String字符串为乱码,怎么解决

如果接收、转换、保存时的编码不对,就会这样了。 此xml已表明使用utf-8编码,如果用gb2312解码,就会显示上面的乱码,如果指定编码为utf-8,就会显示正确的字符串“注册返回结果”。 在电子计算机中,标记指计算机所能理解的信息符号

查看xml文件全为乱码

关于中文乱码问题有很多种解决方法的,首先可以查看页面的字符标准,一般采用gb2312 如果不能解决,可以通过修改server.xml文件 如果还不能解决,可以自己编写中文乱码处理函数 &lt;%!String trans(String chi){ String result=null;byte temp[];try { temp=chi.getBytes("iso-8859-1");result=new String...

xml文件打开后为什么是乱码?

解决xml文件打开后全是代码的方法如下:1、在Excel表格中,点击上方的“开发工具”按钮。2、然后,点击“导入”按钮,导入要打开的文件,再点击“导入”即可。可扩展标记语言(Extensible Markup Language,XML)是标准通用标记语言的子集,可以用来标记数据、定义数据类型。XML是一种允许用户对自己的标记语言...

如何解决AS3加载XML文件后 出现乱码的问题

回答:但是当加载的XML文档中包含中文的话,有时候处理不当,会出现乱码的问题。同志们,别慌!解决方法: 方法一:把XML文件的编码改为UTF-8,这是全球通用的! 方法二:在主类的构造函数的开头加入“System.useCodePage = true;”(记得导入相应类:“import flash.system.System;”)延伸问题: 部分网友...

dialog的href的地址中有中文参数,乱码问题如何解决?

回答:我目前解决的办法:在各种类型文件的编码都一致的情况下,jsp页面中一个url地址参数包括中文,在打开地址页面读取参数时,是乱码,可以尝试修改tomcat服务的server.xml文件,把标签这个地方修改成

xml文件夹符号乱码,怎么办啊

英文没变···求解啊·· 展开  我来答 分享 微信扫一扫 网络繁忙请稍后重试 新浪微博 QQ空间 举报 浏览5 次 可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。 xml文件 符号 乱码 搜索资料 本地图片 图片链接 代码 提交回答 匿名 回答自动保存中你...

xml字符串与字符串 怎么将字符串转化为xml oracle读取xml字符串 字符串排序输入5个字符串 dom4j解析xml字符串 xml字符串解析 如何识别字符串中的乱码 java判断字符串是否乱码 vb 以乱码查找字符串
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
舒淇从小被家暴,她说"有些衣服,脱了就再也穿不上了",咋回事? 舒淇星路历程 舒淇自曝悲惨童年经历 盐桥原电池 负极的Zn 为什么会失电子 ZnSo4的作用又是什么 国产机械表哪个品牌值得买?这三大品牌设计品质都出众;好评高 关于双液原电池的原理有盐桥的 哪个品牌的机械表好 微软模拟飞行FSX的极品优化插件REX V3.5版本有谁用过?请告诉我如何安装... 罪与罚txt全集小说最新章节免费阅读的吗 8个理由告诉你为什么选择不锈钢橱柜 中国的名山大川排名 android中android:text=&quot;@string/请输入&quot;中文乱码怎么办 中国名山 排名 函数返回值为String型时,且返回结果为中文时,得到的结果是乱码,这是怎么回事? c语言string出现乱码 java中文string 乱码如果不正则直接System.in.read(by)可以往文件写入中文可是我想进行匹配就要经过String 中国排名前十的名山有哪些 java string乱码问题 中国名山海拔高度排名 java中文乱码,能说下string.getBytes()和new String()转码是,具体点... 中国排名前十名的大山有哪些 中国十大名山排名榜 中国名山排名前十 中国名山排名是怎样的? 微信公众账号有什么功能? 中国十大高山海拔排名 微信公众号怎么创建功能栏目?? 微信公众号 里面 这个功能怎么设置的? 信用卡逾期4天会影响征信吗 招商银行逾期2天会上征信吗? 中国著名的山有哪些? javascript 字符串 String 初级问题 中文乱码 中国有几大名山? nsstring中文有乱码怎么解决? 中国最美的十大名山(最新排名是什么) C++ string输出乱码问题 String[]数组输出乱码? java String.substring 乱码 C++ STRING 中文问题 java中的输出string字符串,是乱码 qDebug() 输出 QString 中文显示乱码 java String.charAt在linux下获取中文怎么是乱码 java 字符串字符串乱码问题 PHP中使用substr截取字符串出现中文乱码问题该怎么办 什么是paypal账户? 关于PayPal账号,这个是我的账号吗??? paypal中国帐号的问题 paypal是什么?有客人要用这个付款,想了解下,还有需要费用吗? 贝宝账号是什么? paypal是私人账号,还是公司账号? 付款方式对那方有利?