Windows上的Ant编码问题 – UTF-8文件但在变音符号上吐出垃圾
不知何故,我无法让我的UTF-8资源与Ant合作。
我得到了很多“警告:编码ascii的不可映射的字符”。 我真的很疯狂。 小时,小时和小时。 顺便说一句,我注意到有5个人已经疯狂地使用了标签。 🙂
是的,我已经读过这个 , 这个和其他人。 谷歌也(至少3个或4个不同搜索的前5页结果,至少)。 有javac选项。 我试过了。 还有一些预设或东西(对不起,凌晨3点)。 也没用。
我正在使用Ant生成Android apk文件。 我不能使用Eclipse,所以没有。 顺便说一句,ant文档对我来说是胡言乱语。 这些例子完全没用。 我已经不记得我尝试了多少。
我尝试使用Dfile.encoding选项,尝试将其与CHCP 65001 Windows命令混合使用。 做了所有的组合,它甚至让Ant(Javac我猜)停止吐痰错误,但它仍然没关系。 我的代码仍然以垃圾carachters(一堆??而不是á,í等)结束。
您是否正确地为编译器指定了文件编码? 否则,java编译器默认使用平台的默认编码,在Windows上(例如)不是UTF-8。 通过对javac使用-encoding标志来指定编码。
javac -encoding utf8 ...
在ant build.xml中:
只需在build.xml
脚本中指定编码:
但是对于代码重用,最好将值提取到特定于项目的配置文件中:
然后只需将java.encoding=UTF-8
添加到build.properties以基于每个项目覆盖编码。
对于在Windows上使用UTF-8源文件并尝试使用由Dan Galpin / Tim Bray着名的博客文章构建Proguard的Android软件包的所有人。
这种编码问题发生在javac上( 感谢提示,JesperE )。 但是,我无法在项目的文件上创建新的javac规则,因为我不知道任何需要的参数。 所以这是简单的答案(可能不是唯一的答案):
- 尝试通常的“ant release”命令。
-
请注意,在开始时,有一个输出正在讨论一些导入的ANT规则。 一开始你会看到一些[设置]规则。 寻找这个:
[setup]导入规则文件:tools \ ant \ ant_rules_r3.xml
-
找到该文件并将其打开。 搜索“javac编码”。 您将看到设置为“ascii”。 更改为“UTF-8”。
- 再次“释放”,它会没事的。
这就是我在这里做的。 我确信有一种方法可以在每个项目的基础上覆盖它。 但正如我所说,它一直给我强制参数的错误。 所以对我来说至少这样做更容易 。 此外,我还是只使用UTF-8。
您应该在很多地方设置相同的页面:
- 在Ant Script
javac encoding="UTF-8" ... /
-
-Dfile.encoding=UTF-8
Ant调用参数中的-Dfile.encoding=UTF-8
-
在file-properties-resource-encoding中 – 再次选择相同的页面。 您还可以通过IDE(Eclipse的首选项)为容器中的所有文件更改它。 然后使所有文件从容器inheritance。
-
如果某些文件是以错误的编码创建的,请通过PsPad或其他文本编辑器(复制粘贴,更改文件编码,返回复制粘贴)重新编写内容。 这些文件将在
unmappable character
错误中提及。
设置所有这四个问题后,您将没有unmappable character
行。
下面是ant build.xml文件中-Dfile.encoding = UTF-8的用法:
这将解决问题。 适用于所有UTF 8字符。