【问题标题】:Encoding error - unmappable character for encoding ASCII编码错误 - 用于编码 ASCII 的不可映射字符
【发布时间】:2019-02-04 19:00:58
【问题描述】:

我在无头 Ubuntu 16.04 服务器上编译 ZXing 源代码时遇到了一些问题,而在家里的 Ubuntu 18.04(非无头)上它编译得很好。我已经修改了语言环境,确保它们是相同的,尽管它不能修复那里的错误:

[错误] /root/zxing/core/src/main/java/com/google/zxing/client/result/WifiResultParser.java:36:错误:编码ASCII的不可映射字符

在使用 LC_ALL 进行了 setup-locale 和其他几次尝试后,我只是不明白问题可能是什么,而更改原始代码是最不受欢迎的选择。也就是说,file -bi 报告文件为文本/纯文本; charset=utf-8,所以我对 ASCII 发挥作用的地方感到困惑。

现在我可以使用 mvn package -Dmaven.test.skip=true -Dmaven.javadoc.skip=true 但这只是一种解决方法,而不是解决方案。

使用 java -jar -verbose 的进一步测试表明可能缺少更严重的东西,因为它在以下位置停止执行:

[6.979s][info][classload] java.time.Instant 来源:jrt:/java.base [6.980s][info][classload] java.time.Clock 源:jrt:/java.base [6.980s][info][classload] java.time.Clock$SystemClock 来源:jrt:/java.base [6.982s][info][classload] java.time.ZoneId 来源:jrt:/java.base [6.982s][info][classload] java.time.ZoneOffset 来源:jrt:/java.base

在我的本地机器上,它在这一行之后初始化 java.util.logging.Logger,而在服务器上它跳过它并退出。

进一步检查表明,它无法读取我提供给它的图像,停在: [动态链接原生方法 com.sun.imageio.plugins.jpeg.JPEGImageReader.readImage ... JNI] [动态链接本机方法 com.sun.imageio.plugins.jpeg.JPEGImageReader.disposeReader ... JNI] [动态链接原生方法 java.io.FileInputStream.close0 ... JNI]

【问题讨论】:

  • 查看WifiResultParser的源代码:Javadoc包含德国作者姓名“Steffen Kieß”,这可能会导致编码问题。您应该检查源代码的实际编码是否为 UTF-8。顺便说一句,我会使用十六进制编辑器。
  • 当然我已经看到了,但是正如我在我的本地机器上提到的,它在从存储库克隆后使用默认设置编译得很好,我试图找出无头上缺少什么服务器。
  • 很好,我只是在检查。也许 m4gic 的回答会解决它。

标签: java zxing


【解决方案1】:

这是由于默认编码,不是necesaryUTF-8 请尝试以下方法:

-Dfile.encoding=UTF-8

【讨论】:

    猜你喜欢
    • 2017-03-15
    • 2011-02-23
    • 2012-11-05
    • 2011-06-27
    • 2015-02-24
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    相关资源
    最近更新 更多