Groovy读取unicode xml文件并将其添加到JCR中,但不添加源文件中的全文



在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进行日文编码的讨论

最新更新