Java 8 RFR 8011194: Apps launched via double-clicked .jars have file.encoding value of US-ASCII on Mac OS X
Brent Christian
brent.christian at oracle.com
Fri Jul 26 10:53:05 PDT 2013
Please review my fix for 8011194 : "Apps launched via double-clicked
.jars have file.encoding value of US-ASCII on Mac OS X"
http://bugs.sun.com/view_bug.do?bug_id=8011194
In most cases of launching a Java app on Mac (from the cmdline, or from
a native .app bundle), reading and displaying UTF-8 characters beyond
the standard ASCII range works fine.
A notable exception is the launching of an app by double-clicking a .jar
file. In this case, file.encoding defaults to US-ASCII, and characters
outside of the ASCII range show up as garbage.
(FWIW, this is not recommended by Apple as a method for deploying Java
apps [1], though OS X does have a Jar Launcher.app to make it work.)
It's worth mentioning that this is not something that has ever worked on
MacOS X. (Apple's JRE defaulted to "MacRoman" for English and AFAIK most
European locales. I believe this is a holdover from the pre-OS X days).
Even so, the situation can be improved. When launching, if the standard
encoding comes up as US-ASCII, but there are no hints from the
environment (e.g. LANG/etc environment variables), it would be sane to
instead use UTF-8 as the default encoding on MacOS X. An explicit
file.encoding setting by the user is still honored (and can even be set
back to US-ASCII).
I believe this also fixes the related issue with webstart [2].
Webrev is here:
http://cr.openjdk.java.net/~bchristi/8011194/webrev.00/
Thanks,
-Brent
[1]
http://developer.apple.com/library/mac/#documentation/Java/Conceptual/Java14Development/03-JavaDeployment/JavaDeployment.html
[2] http://bugs.sun.com/view_bug.do?bug_id=8011195
More information about the macosx-port-dev
mailing list