Somehow I can’t get my UTF-8 sources to play nice with Ant.
I get a whole lot of “warning: unmappable character for encoding ascii”. I’m going crazy, really. Hours and hours and hours. Btw, I noticed 5 people already used the tag crazy. 🙂
And yes, I’ve read this, this and others. Google also (the first 5 page results of at least 3 or 4 different searches, at least). There are javac options. I’ve tried. There is also some preset or something (sorry, 3 AM). Didn’t work either.
I’m generating Android apk files with Ant. I can’t use Eclipse, so no. And by the way, the ant documentation is gibberish to me. Those examples are of no use at all. I’ve lost count on how much I’ve tried.
I’ve tried using the Dfile.encoding option, tried mixing that with CHCP 65001 Windows command. Did all the combinations, and it even makes Ant (Javac I guess) stop spitting errors, but it still doesn’t matter. My code still ends up with garbage carachters (a bunch of ?? instead of á, í etc).
To all you who use UTF-8 source files on Windows and was trying to build Android packages with Proguard using the famous blog post by Dan Galpin/Tim Bray.
This encoding problem happens with javac (thanks for the tip, JesperE). However, I was unable to create a new javac rule on my project’s files, because of needed parameters that I didn’t know anything about. So here is the easy answer (probably not the only answer):
Notice that, on the start, there is an output talking about some imported ANT rules. Right on the start you will see some [setup] rules. Look for this one:
[setup] Importing rules file: tools\ant\ant_rules_r3.xml
Find that file and open it. Search for “javac encoding”. You will see that is set to “ascii”. Change to “UTF-8”.
That’s how I did here. I’m sure there is a way to override this on a per-project basis. But it kept giving me errors on mandatory parameters, as I said. So for me at least it was that much easier doing this way. Besides, I only work with UTF-8 anyway.