如题。我的许可证文件包含 UTF-8 字符,默认情况下,IzPack 的 LicensePanel 似乎需要 ASCII 文本文件。
有针对这个的解决方法吗?
更新:
我尝试在资源行中使用“编码”属性:
<res id="LicencePanel.licence" src="Licence.txt" encoding="utf-8"/>
它没有用。
如题。我的许可证文件包含 UTF-8 字符,默认情况下,IzPack 的 LicensePanel 似乎需要 ASCII 文本文件。
有针对这个的解决方法吗?
更新:
我尝试在资源行中使用“编码”属性:
<res id="LicencePanel.licence" src="Licence.txt" encoding="utf-8"/>
它没有用。
看起来这行不通。我查看了 4.3.5 的源代码,看起来这可能是一个错误。也许它会在未来的版本中得到修复。我查看了源代码,这就是问题所在。在 LicensePanel.java 内部:
String resNamePrifix = "LicencePanel.licence";
licence = ResourceManager.getInstance().getTextResource(resNamePrifix);
ResourceManager 有两个方法:
public String getTextResource(String resource, String encoding) throws ResourceNotFoundException, IOException
public String getTextResource(String resource) throws ResourceNotFoundException, IOException
第一个第二个正在使用,而第一个应该使用。
编辑:刚刚检查了 5.0.0-rc1 ,我认为问题也发生在那里。(没测试只是看了一眼代码)。
我的 LicencePanel.licence 资源也有类似的问题。我的安装中也有一个 InfoPanel.Info 资源。我的信息文件 (readme.txt) 和许可证 (licence.txt) 都是纯文本格式。当我运行安装时,我的编译器接受自述文件,但不接受许可文件。
也许这不是编码问题,因为两个文件的格式相同,但信息文件被接受而许可证未被接受。