我有许多项目可以在家中使用Mac OS,有时我会使用Windows进行操作。
因此,在Eclipse中,我将项目的编码更改为UTF-8。
但是当我导出jar或生成插件时,我想使用这些jar,似乎导出的jar不在我想要的编码中。
要进行导出,我需要外化字符串,当我在其他项目中导入这个lib时,机智效果很好。
我是否需要始终外部化字符串以导出我的库?
答案 0 :(得分:0)
JAR文件没有编码 - 它只是一个ZIP容器。如果您有资源文件,它们将被复制到JAR文件中。
您可能忘记在程序中加载包含外化字符串的资源文件时指定编码。在这种情况下,使用默认编码,其在不同平台上是不同的。
因此,如果您可以更改资源加载源代码,请检查它是否使用特定编码。如果您无法更改资源加载源,则必须转换资源文件的编码。
答案 1 :(得分:0)
JAR使用ZIP编码机制和mandates that:
在JAR文件中,所有文件名必须以UTF-8编码进行编码。
其他JAR元数据的spec mandates the encoding(MANIFEST.MF等)。如果JAR偏离此,那就是一个错误。
如果您指的是JAR中的其他资源,开发人员有责任确保使用正确的编码保存和加载这些文件。
有一些讨论认为JAR格式将在Java 7/8中转移到更丰富的格式,但我没有看到任何具体的内容。
答案 2 :(得分:0)
我指的是在Java Classes中声明的字符串。在这种环境中出现编码问题...... 为了不发生,我需要外化字符串。但我不认为这是解决方案,或者它是否存在更好的方法。
感谢。