Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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 CXF、XMLStreamWriter和编码_Java_Xml_Spring_Spring Mvc_Cxf - Fatal编程技术网

Java CXF、XMLStreamWriter和编码

Java CXF、XMLStreamWriter和编码,java,xml,spring,spring-mvc,cxf,Java,Xml,Spring,Spring Mvc,Cxf,我有一个SpringWeb项目,现在应该使用cxf和web服务来实现 一个功能是输出一个xml文件。我正在使用XMLStreamWriter执行此任务。一切正常 但是,当我将一些cxf依赖项添加到POM文件中时,输出xml文件将获得“IBM1252”编码。之后无法读取xml文件。异常:“无效的编码名称IBM252”被抛出 我添加了以下依赖项: <dependency> <groupId>org.apache.cxf</groupId>

我有一个SpringWeb项目,现在应该使用cxf和web服务来实现

一个功能是输出一个xml文件。我正在使用XMLStreamWriter执行此任务。一切正常

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

我添加了以下依赖项:

    <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>
我仍然使用“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
}

这可能会有所帮助-不客气。使用FileReader/FileWriter时一定要小心——最好使用OutputStreamWriter和InputStreamReader来完全控制字符集。
   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
}