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