代码:
def dataMap
dataMap = [
[No: '1', CustomerID: '777', Name: 'Lithuania: Ąęįėčęįasdad5645'],
[No: '2', CustomerID: '888', Name: 'Latin: abcdefghij5646'],
[No: '3', CustomerID: '999', Name: 'Russian: ааАСДАСЩХдсадсасд546']
]
def date = new Date()
def sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
def builder = new StreamingMarkupBuilder()
builder.setEncoding("UTF-8")
def iFile = {
mkp.xmlDeclaration()
mkp.declareNamespace('xsi': 'http://www.w3.org/2001/XMLSchema-instance')
iFile {
Header {
FileDescription {
FileVersion("rep-v1.2")
FileDateCreated(sdf.format(date))
DataType("F")
SoftwareName('reporting-api')
SoftwareVersion('2.0')
NumberOfParts("1")
PartNumber("BILLS")
}
}
MasterFiles {}
SourceDocuments {
SalesInvoices {
for (row in dataMap) {
Invoice {
InvoiceNo(row.No)
CustomerInfo {
CustomerID(row.CustomerID)
Name("{!! htmlspecialchars(" + row.Name + ",ENT_NOQUOTES | ENT_IGNORE | ENT_HTML401, \"UTF-8\") !!}")
}
}
}
}
}
}
}
XmlUtil.serialize(builder.bind(iFile))
问题在于我何时使用:
XmlUtil.serialize(builder.bind(someFile))
我的xml没有UTF-8字符。已注意到在线(字段row.Name序列化后需要刮擦其他国家符号)
Name("{!! htmlspecialchars(" + row.Name + ",ENT_NOQUOTES | ENT_IGNORE | ENT_HTML401, \"UTF-8\") !!}")
请帮忙解决那个问题,好像是java XmlUtil类问题,但为什么呢? Java不是Unicode(笑话)?
builder.setEncoding("UTF-8")
不起作用。