komoku / aetheria

Aetheria Game Engine - Migrated from code.google.com/p/aetheria
Other
8 stars 0 forks source link

Los caracteres Unicode no ISO-8859-1 no se leen correctamente de los ficheros properties como messages.lan #296

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Al crear aventuras en esperanto, los caracteres acentuados en esperanto que no 
son ISO-8859-1 se ven como interrogaciones.

Esto es porque, por compatibilidad con java 1.5, no se usa el método 
load(Reader) de la clase Properties, y el método load(InputStream) siempre 
supone que la entrada está en ISO-8859-1.

En su momento se implementó un workaround para leer los ficheros en UTF-8 sin 
recurrir al método de java 1.6, pero en el fondo lo que hace el workaround es 
convertir internamente el UTF-8 a ISO-8859-1 (lee los bytes del fichero de 
propiedades, convierte mediante streams a ISO, y hace que la clase Properties 
lea el stream en ISO). De esta manera, falla para los caracteres que no son 
ISO-8859-1 (ya que no los escapa).

Si se quiere mantener la compatibilidad con java 1.5, tal vez se podría probar 
qué pasa usando un CharsetEncoder que escape los caracteres no ISO:

http://stackoverflow.com/questions/10008989/library-for-converting-native2ascii-
and-vice-versa

En teoría es lo mismo que hacer native2ascii, con lo cual se supone que a los 
chinos les funcionan los ficheros .properties, así que parece que debería 
funcionar.

De todas formas, habría que plantearse dejar a un lado definitivamente java 
1.5, ya que cada vez hay menos usuarios de Mac OS X Tiger, y aparte de 
simplificar esto, hay otras características interesantes (como kerning) que no 
se pueden usar en 1.5.

Original issue reported on code.google.com by komoku on 9 Apr 2013 at 7:35

GoogleCodeExporter commented 9 years ago
This issue was closed by revision r741.

Original comment by komoku on 9 Apr 2013 at 9:03