Eclipse y la locura de la codificación de caracteres
07/09/2006

Trabajo en proyectos Java utilizando Eclipse. El entorno de trabajo en la oficina del resto de desarrolladores es Windows y usamos un almacén cvs para el código fuentes. Todos utilizan Eclipse 2.1 mientras que yo uso Eclipse 3.1.2 y además en Linux (Ubuntu, para ser más exactos).
A la hora de compartir código con ellos tenía problemas con la codificación de caracteres ya que en windows por defecto es CP-152 y en Ubuntu, por defecto, es UTF-8.
Mi primer intento para solucionar el problema fué pasar el parámetro -Dfile.encoding=ISO-8859-1 al arrancar el Eclipse, con lo que establecía el juego de caracteres por defecto de la máquina virtual sobre la que se ejecuta el Eclipse a ISO-8859-1 (un superconjunto del CP-152 de Windows).
Aún así, seguía con problemas de juego de caracteres, así que decidí establecer dicha codificación por defecto en todo el sistema Linux, para ver si así se solucionaba el problema (se puede ver aquí cómo hacerlo).
Pero tampoco, de echo en ese momento empezaron a suceder “cosas extrañas”. Yo abría un archivo JavaScript en el editor del Eclipse en el que se veían ??? en vez de ¡¡¡, lo editaba poniendo ¡¡¡, lo guardaba, y al volver a abrirlo, volvían a aparecer ??? (hasta ahora si ponía ¡¡¡ siempre se veían ¡¡¡ en mi Eclipse, aunque luego se viese mal en Windows).
Dándole vueltas llegué a la conclusión de que algo raro estaba pasando, parecía que el archvio de abría utilizando un juego de caracteres y se guardaba utilizando otro distinto. Entonces fué cuando descubrí la opción Window –> Preferences –> General –> Content Types (que no existe en la versión 2.1), donde a cada tipo de archivo se le puede asociar una codificación de caracteres (además también está la Window –> Preferences –> General –> Editors, donde puedes establecer la codificación por defecto para todos los editores de texto -NOTA: esta opción ya no está disponible en Eclipse 3.2.1, solamente existe la de Content Types-). Y resulta que varias ya vienen prefijadas, entre ellas JavaScript que viene como US-ASCII. Ahí estaba el problema, poniendo ISO-8859-1 se solucionaron los problemas de incompatibilidades con mis compañeros.













18/10/2006 at 23:38
Oh… que bien! gracias… me he vuelto loco buscando donde estaba el problema. A mi, trabajando en PHP, todos los fitxeros q tenia como includes, sin ningun tipo de referencia a la codificación me los abría en UTF-8 aunque estavan en ISO-8859-1.
Gracias
joan
02/12/2006 at 4:59
Muchas gracias por el dato, yo había dejado de usar eclipse por que no encontraba la forma de hacer que guarde los archivos .js en UTF-8
24/12/2006 at 0:17
Gracias por el apunte de la desaparición de la opción Window –> Preferences –> General –> Editors en la 3.2.1, me he vuelto loco buscandola. Por otro lado, sabia que podía cambiarse la codificación de todo el editor pero no que se pudiera hacer para cada tipo de fichero, está muy bien.
Añadir que el poder variar la codificación es muy ventajoso ya que me permite tener mi kubuntu con UTF-8 y mantener la compatibilidad de los ficheros .java en eclipse con el CVS y el resto de mis compañeros asociando los .java con ISO-8859-1 (cuando hago un update de un fichero y en los comentarios me salen chinos me cabrea bastante).
05/01/2007 at 14:19
Muchas gracias por tú aporte.
05/02/2007 at 10:55
Ok, gracias por la utilísima información sobre la codificación de los caracteres. Ahora la cuestión es: ¿Cómo cambiar la configuración con la que Eclipse guarda los ficheros por defecto?
En la ruta que describes, aparece un cuadro de dialogo con las extensiones de los archivos y la codificación por defecto, pero esta codificación (en el caso de PHP, UTF-8) es INVARIABLE. Decir que trabajo en Window$. Un saludo.
09/04/2007 at 16:46
Mil gracias… Me he instalado el Eclipse 3.2 y me estaba desquiciando con eso. He seguido tu consejo y he conseguido recuperar los acentos.
16/04/2007 at 19:59
Yo he puesto ISO-8859-15
Si ponia solo ISO-8859-1, no me aceptaba el caracter EURO €, en cambio el ISO-8859-15 sí…
05/07/2007 at 11:53
Llevo toda la mañana para que me guarde unos archivos con caracteres como € y hasta que no he entrado aquí no he sabido sacarlo.
Gracias
01/10/2007 at 17:04
Muy buen dato. Gracias.
19/10/2007 at 12:36
Muchas gracias por la información, todavía no he conseguido solucionar del todo los fallos que me dan pero es un inicio.
11/11/2007 at 17:06
Gracias por salvarme. Estaba ya por cortarme las venas con una lechuga.
19/11/2007 at 19:14
Gracias a todos porque yo estaba igual, desesperado con los acentos.
Aquí os paso una expresión regular para hacer un ‘find in files’ en eclipse para buscar todos los caracteres extraños en archivos php:
[^a-zA-Z0-9\,\.\:\=\?\¿\-\+\-\/\\\"\'\\!\%\$\(\)\;\ \n\r\t\_\&\[\]\{\}\*\|\#\@\á\é\í\ó\ú\ñ\^\`\º\Á\É\Í\Ó\Ú\Ñ]+
08/02/2008 at 13:49
[...] en eclipse (especialmente duro cuando compartes trabajo entre equipos linux-windows), dejo este enlace al blog de Rubensa donde explica claramente como cambiarla y las diferencias entre eclipse 2.1 y [...]
19/02/2008 at 17:44
Muchísimas gracias tío. Nos ha traído ésto de cabeza…. Si te conociera te habrías ganado una copa,jeje!. Un saludo
26/02/2008 at 14:15
Excelente lo del encoding con eclipse, me solucionaste un problema cuando creaba archivos pdf
27/02/2008 at 14:07
Hola, que puedo hacer para que el eclipse en linux me reconozca los nombres de las clases con tildes??
24/04/2008 at 13:17
Gracias, me acabas de ahorrar un tiempo precioso
24/10/2008 at 20:03
Hay una que me sirvió para el problema de la compilación de la jvm, el problema lo solucioné en eclipse v3.2 así:
Windows—preferences
Luego:
java—Installed JREs
Luego: Seleccionás tu JRE y presionás “editar”, y en “Default VM arguments” ingresas tu encoding, que en mi caso fué -Dfile.encoding=cp1252
Que les sea leve.
Don Pityla
http://music.geocities.jp/donpitylaclub/
02/11/2008 at 20:27
Gracias por el consejo, aunque a mí no me sirvió de nada, pues me encontré con que los tipos venían como Locked (bloqueados) en ese menú.
Os dejo aquí otra solución para este problema, que se aplica sólo para los ficheros de un proyecto concreto en el que estemos trabajando: Haced clic con el botón derecho en el proyecto, y elegid “Propiedades”. Una vez allí, hay un par de apartados, “Text file encoding” y “New text file line delimiter” que son muy apañaos
03/02/2009 at 13:43
Huy gracias por la información, ya pensaba volver al windows por la incompatibilidad…
27/04/2009 at 10:21
Muchas gracias. Tenía exactamente el mismo problema que tu. He traspasado mi sistema de windows a Linux y me tenido problemas con la codificación.
18/02/2010 at 16:13
La migración de la BBDD de una aplicación desde un encoding ISO-8859-1 a otra con enconding UTF-8 puede presentar problemas durante el proceso de import debido al tratamiento que el encoding UTF-8 realiza de los campos CHAR, VARCHAR y VARCHAR2.
El origen de los problemas viene provocado por que en ISO-8859-1 cualquier carácter (normales, acentuados, ñ, etc…) ocupa 1 byte mientras que en UTF-8, los caracteres “especiales” ocupan más de 1 byte.
Para evitar este problma es necesario especificar los campos CHAR, VARCHAR y VARCHAR2 con el atributo CHAR ya que de esta manera se consigue desligar a los datos del encoding de la BBDD en la que resida. En caso contrario ORACLE asumirá por defecto que el tamaño implica “bytes” y como consecuencia un encoding UTF-8 producirá problemas al manejar caracteres especiales.
Por otro lado, la realización de este cambio deja en manos de ORACLE la decisión sobre el tamaño físico de datos a emplear de forma que, en el caso que los VARCHAR que no contengan caracteres extraños su tamaño coincidirá exactamente al tamaño en bytes en TS pero, un campo que contenga uno (o más) caracteres especial, verá incrementado el espacio empleado en disco de forma proporcional. En este caso, ORACLE recomienda considerar un incremento de un 15% sobre el espacio de disco ocupado en la versión ISO.
04/11/2010 at 13:28
No suelo dejar comentarios en blogs de desconocidos….. pero GRACIAAAAAAAAAAAASSS!!!
11/01/2011 at 22:29
GRACIAS 4 años y medio después
Funciona como un reloj.
02/04/2011 at 14:50
Oleee, me estaba volviendo loco y por fin puedo javear en Ubuntu! Muchas gracias por el aporte
14/08/2011 at 15:48
Hey, muchas gracias por el aporte, me estaba volviendo loco al trabajar con GWT!!! Saludos y mucha suerte!!!
13/09/2011 at 16:40
Que gran aporte, me sirvio muchisimo!! Gracias.
18/11/2011 at 14:04
Muchas Gracias. Diste en el clavo con la solucion del problema.
Otro obstaculo menos para usar Linux.
Saludos
28/12/2011 at 2:16
[...] El Blog de rubensa: Eclipse y la locura de la codificación de caracteres GA_googleAddAttr("AdOpt", "1"); GA_googleAddAttr("Origin", "other"); GA_googleAddAttr("theme_bg", "ffffff"); GA_googleAddAttr("theme_text", "333333"); GA_googleAddAttr("theme_link", "0066cc"); GA_googleAddAttr("theme_border", "f2f7fc"); GA_googleAddAttr("theme_url", "ff4b33"); GA_googleAddAttr("LangId", "19"); GA_googleAddAttr("Tag", "eclipse"); GA_googleFillSlot("wpcom_sharethrough"); Me gusta:LikeSé el primero en decir que te gusta esta post. [...]