在Groovy中,我使用下面的代码片段解析一个包含Unicode文本的xml文件。但是全文不会复制到JCR节点,只有部分字符被识别并复制到目标JCR节点/另一个文件系统,其余字符以无法识别的格式显示。<>之前FileReader fr = new FileReader("$currentFileLocation")def inputSource = new inputSource (fr)inputSource.setEncoding("utf - 8")def obj = new XmlSlurper().parse(inputSource)def HtmlContent = obj."Widget-HTML"."HtmlContent". getbody ().text()
Expected应该这样写入目标系统:
但是它被复制成这样的格式:? ? ? ? ?? ? ? ? ?
假设下面任意一个xml文件,其中包含这个问题的作者提到的字符。
xml文件,例如testutf.xml。请注意,该文件是用utf-8
字符编码保存的。
<?xml version="1.0" encoding="UTF-8"?>
<records>
<record>
<name>サービス事例のサポート ツールセットである</name>
</record>
</records>
这是一个脚本,读取读取相同编码的xml文件。
import groovy.xml.*
//Chang the xml file path as per your environment
def fileName = '/absolute/path/of/the/testutf.xml'
//Read file with utf-8 encoding
def contents = new File(fileName).getText('utf-8')
//parsed object
def parsedContents = new XmlSlurper().parseText(contents)
//Read the data
def nameData = parsedContents.record.name
println "Record name : $nameData"
Record name : サービス事例のサポート ツールセットである
并且我相信您应该能够对您自己的xml应用相同的方法,而不是上面的示例xml
您可以尝试Shift_JIS
编码,它们处理日文字符的细节。
参考此处关于使用UTF-8、UTF-16和Shift_JS进行日文编码的讨论