Apache Jena无法在生成的XML中显示UTF-8编码

Jon*_*êas 4 java xml encoding utf-8 jena

我希望Apache Jena生成一个XML

<?xml version="1.0" encoding="UTF-8"?>
Run Code Online (Sandbox Code Playgroud)

我的代码:

RDFWriter writer = myJenaModel.getWriter("RDF/XML-ABBREV");
writer.setProperty("showXmlDeclaration", "true");
FileOutputStream fos = new FileOutputStream(filepath);
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
writer.write(myJenaModel, osw, null);
Run Code Online (Sandbox Code Playgroud)

只生成

<?xml version="1.0"?>
Run Code Online (Sandbox Code Playgroud)

但是,如果我改变了

OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8"); 
Run Code Online (Sandbox Code Playgroud)

OutputStreamWriter osw = new OutputStreamWriter(fos, "ISO-8859-1");
Run Code Online (Sandbox Code Playgroud)

它会产生

<?xml version="1.0" encoding="ISO-8859-1"?>
Run Code Online (Sandbox Code Playgroud)

正如所料.

我试图按照Jena文档中的说明进行操作,但没有成功.

有谁知道如何让Jena使用UTF-8编码声明生成我的RDF/XML?

提前致谢.

And*_*dyS 5

encoding="UTF-8" 是XML的默认值,因此没有必要.

  • 请参阅[XML的默认编码是UTF-8或UTF-16?](http://stackoverflow.com/q/6302544/1281433),讨论在没有`encoding = ...`声明的情况下如何确定编码,以及[4.3.3实体中的字符编码](http://www.w3.org/TR/2008/REC-xml-20081126/#charencoding)在XML标准中有关此行为的更多信息. (2认同)