【问题标题】:How to retain file encoding using karate.read and karate.write如何使用 karate.read 和 karate.write 保留文件编码
【发布时间】:2021-09-09 18:38:09
【问题描述】:

我试图重写一个最初编码为ISO-8859-1 的 XML 文件。 当我尝试打印输出时,它给了我乱码。有人可以帮忙解决这个问题吗?

someFile.xml(确保文件以 ISO-8859-1 编码保存)

<?xml version="1.0" encoding="ISO-8859-1"?>
<text>å bestå gjennom fem århundrer også tålt</text>

test.feature

* def xmlData = karate.read("someFile.xml")
* karate.log(karate.prettyXml(xmlData))

输出:

<text>� best� gjennom fem �rhundrer ogs� t�lt</text>

我已确定我的 pom.xml 使用的是 ISO-8859-1 编码

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.10</version>
  <configuration>
    <argLine>-Dfile.encoding=ISO-8859-1</argLine>
  </configuration>
</plugin>

【问题讨论】:

    标签: karate


    【解决方案1】:

    在内部,空手道偏向于 UTF-8。到目前为止,这还不是问题。

    我建议两种选择:

    • 请为空手道贡献代码以改进它
    • 编写一个自定义的 Java 实用程序,该实用程序完全按照您想要的方式进行读写,也许如果您在该代码工作后共享该代码,我们可以考虑将这部分作为空手道的“核心”。请参考文档中的Java interop

    另见:https://stackoverflow.com/a/54593057/143475

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-31
      • 1970-01-01
      • 2013-12-21
      相关资源
      最近更新 更多