Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 变压器中允许的特殊字符_Java_Xml_Encoding_Utf 8_Character Encoding - Fatal编程技术网

Java 变压器中允许的特殊字符

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

我试图在处理xml文件后将其发送到服务器,该文件具有一些特殊的字符,如佥佬佧佼A

当前代码看起来像

 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文档,根据需要进行转换,然后将其写回磁盘。然后,您可以使用普通文本编辑器查看该文件,该编辑器支持您正在使用的编码和您正在使用的字符。