我正在使用Jena生成一些 RDF 文件。整个应用程序使用 utf-8 文本。源代码也存储在 utf-8 中。
当我在控制台上打印一个包含非英文字符的字符串时,我得到了正确的格式,例如Est un lieu généralement officielle assis...
.
然后,我使用 RDF 编写器输出文件:
Model m = loadMyModelWithMultipleLanguages()
log.info( getSomeStringFromModel(m) ) // log4j, correct output
RDFWriter w = m.getWriter( "RDF/XML" ) // default enc: utf-8
w.setProperty("showXmlDeclaration","true") // optional
OutputStream out = new FileOutputStream(pathToFile)
w.write( m, out, "http://someurl.org/base/" )
// file contains garbled text
RDF 文件以: 开头<?xml version="1.0"?>
。如果我添加 utf-8 没有任何变化。
默认情况下,文本应编码为 utf-8。生成的 RDF 文件验证正常,但是当我使用任何编辑器/可视化器(vim、Firefox 等)打开它时,非英文文本都被弄乱了:Est un lieu g√©n√©ralement officielle assis ...
或Est un lieu g\u221A\u00A9n\u221A\u00A9ralement officielle assis...
. (无论哪种方式,从用户的角度来看,这显然是不可接受的)。Jena 支持的任何输出格式(RDF、NT 等)都会出现同样的问题。
我真的找不到一个合乎逻辑的解释。官方文档似乎没有解决这个问题。
我可以运行任何提示或测试来弄清楚吗?