1
即时通讯发送XML和HttpPost到服务器。这用于罚款,并即时在项目的其他部分成功做到。StringBuilder附加字符串中断UTF 8
使用StringBuilder的创建XML请求,但由于我是追加字符串作为数据的节点,我收到从服务器上的解析器的错误响应林:
Invalid byte 2 of 2-byte UTF-8 sequence.
当我登录请求并在w3c xml validator中检查它是否没有错误。
这是摘录(整体法将大并有敏感数据)从我的StringBuilder的方法:只要
StringBuilder baseDocument = new StringBuilder();
baseDocument.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?><request><setDisposalRequest><customer><company><![CDATA[");
baseDocument.append(company);
baseDocument.append("]]></company>");
baseDocument.append("<firstName><![CDATA[");
baseDocument.append(name);
baseDocument.append("]]></firstName>");
...
我替换字符串瓦尔我追加与硬编码字符串,一切工作正常
即
baseDocument.append(name);
到
baseDocument.append("name");
所有的字符串都有值,它们都不为空或为空!
我设置StringEntity请求为xml
se.setContentType("application/xml");
我失去了什么之前?!?
好thx,会做。但是,当我像我的例子中那样硬编码字符串时,Homecome会起作用吗? – M4tchB0X3r
如果你发送''name''然后使用ISO-88591- *不是问题,因为UTF-8编码和该字符串的ISO-8859-1编码是相同的! (对于所有可用ASCII编码的字符串都是如此)。只有使用非ASCII字符(如ä,ö,ß和一些标点符号)才会有区别。 –
甜,thx。将UTF-8参数传递给StringEntity的确有窍门。 'se = new StringEntity(reqString,“UTF-8”);'由于该应用程序将用于奥地利,因此会有变音符号。我从您的姓名中取出您的姓名,或者来自Ger或At;) – M4tchB0X3r