Java 变压器中允许的特殊字符
我试图在处理xml文件后将其发送到服务器,该文件具有一些特殊的字符,如佥佬佧佼A 当前代码看起来像Java 变压器中允许的特殊字符,java,xml,encoding,utf-8,character-encoding,Java,Xml,Encoding,Utf 8,Character Encoding,我试图在处理xml文件后将其发送到服务器,该文件具有一些特殊的字符,如佥佬佧佼A 当前代码看起来像 public class Utils { public static String transformToString(Document activeDocument) throws TransformerException{ TransformerFactory tf = TransformerFactory.newInstance(); Transformer transform
public class Utils {
public static String transformToString(Document activeDocument) throws TransformerException{
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
transformer.setOutputProperty(OutputKeys.INDENT, "true");
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
StringWriter writer = new StringWriter();
transformer.transform(new DOMSource(document), new StreamResult(writer));
writer.toString();
}
测试班
public class Test {
public static void main(String[] args){
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(xmlPath);
//Doing some process on doc and changing other values
String xmlString = Utils.transformToString(doc);
// Sending xml to soap
HttpPost post = new HttpPost(endpoint);
post.setEntity(new StringEntity(xmlString));
post.setHeader(new BasicHeader("content-type", "text/xml"));
.................
}
}
XML文件
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope ....>
<soapenv:Header/>
<soapenv:Body>
<Test>
<Id>佥佬佧佼A£</Id>
..............
..........
</Test>
.........
我正在获取Id值为A的xmlString
我想要的是:佥佬佧佼A
我该怎么做?我只想要那个XML的字符串格式
编辑:我正在加载一个XML,对其进行一些更改,并通过将该文档设置为httpPost.setEntity将该XML发送到SOAP
谢谢,
Ankit您可以尝试:
encoding="UTF-16"
而不是
encoding="UTF-8"
您如何查看该输出?您正在调用writer.toString,但未对结果执行任何操作。这么少的上下文很难帮助你——一个简短但完整的程序来演示这个问题真的很有帮助。@Jon Skeet:Edited Question这仍然不是一个简短但完整的程序来演示这个问题。尝试从系统中删除所有其他内容,例如SOAP。创建一个简短但完整的程序,该程序只需从文件中加载XML文档,根据需要进行转换,然后将其写回磁盘。然后,您可以使用普通文本编辑器查看该文件,该编辑器支持您正在使用的编码和您正在使用的字符。