繁体   English   中英

CXF,XMLStreamWriter和编码

[英]CXF, XMLStreamWriter and Encoding

我有一个Spring Web项目,现在应该使用cxf和Web服务来实现。

一种功能是输出xml文件。 我正在使用XMLStreamWriter来完成此任务。 一切正常。

但是,当我将一些cxf依赖项添加到我的POM文件中时,输出xml文件将获得“ IBM1252”编码。 此后无法读取xml文件。 例外:抛出“无效的编码名称IBM1252”。

我添加了以下依赖项:

    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-core</artifactId>
        <version>${cxf.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxws</artifactId>
        <version>${cxf.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-transports-http</artifactId>
        <version>${cxf.version}</version>
    </dependency>

我没有更改代码中的任何内容。 我什至尝试过:

    XMLStreamWriter writer = facOut.createXMLStreamWriter(fileWriter);
    writer.writeStartDocument("UTF-8", "1.0");

我仍然获得“ IBM1252”编码。

有谁知道这可能是什么原因?

代替使用始终使用系统默认编码的FileWriter,请使用OutputStreamWriter。

像这样

   OutputStream os=null;
    Writer fileWriter = null;
    File f=new File("myfile");

try {
    os =new FileOutputStream(f);
    fileWriter =new OutputStreamWriter(os,"UTF-8");
} finally {
 // close writer, then outputstream if they are not null
}

....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM