2011-06-10 11 views
7

Estoy haciendo un trabajo usando la API JavaMail, y he encontrado codificaciones que Java no admite de forma nativa (por diseño), como UTF7/unicode-1-1-utf- 7. Para esa codificación en particular, encontré la implementación JUTF7 de Java Charset y CharsetProvider para UTF7. Sin embargo, después de haber agregado el jutf7.jar a mi classpath todavía obtengo UnsupportedEncodingException s, y unicode-1-1-utf-7 es definitivamente uno de los alias de JUTF7.Cargando un Java Charset manualmente

¿Hay alguna forma de cargar manualmente el Charset o asegúrese de que el Charset se esté cargando para poder descartarlo como causa?

Respuesta

6

Hay un poco más para usar un nuevo Charset, además de poner las clases necesarias en el classpath. Para citar las Javadocs:

Un proveedor de juego de caracteres se identifica con un archivo de configuración de proveedor de llamado java.nio.charset.spi.CharsetProvider en el directorio de recursos META-INF/services. El archivo debe contener y contiene una lista de nombres completos de clase de proveedor de juegos de caracteres calificados, uno por línea, . [...]

(http://download.oracle.com/javase/6/docs/api/java/nio/charset/spi/CharsetProvider.html)

¿Este archivo regalo especial en el frasco?

+0

Ese era el problema, gracias! En mis esfuerzos por evitar la instalación de Apache Maven, hice una migración de fuente rápida. Accidentalmente dejé el archivo especial fuera del contenedor como resultado. Construí un contenedor con Maven ahora y el problema se resolvió. – Keeblebrox

2

Debe asegurarse de que el jar carga el cargador de clases principal. Puede lograr esto agregando el jar al directorio de extensiones de la JVM jre/lib/ext, o agregándolo al classpath del programa principal. Por ejemplo, si está usando Tomcat, agregue -cp /path/to/jutf7.jar al script de inicio de Tomcat.

mismo modo, si desea probar jutf7 del REPL Scala, es necesario arrancarla de la siguiente

env JAVA_OPTS="-cp /path/to/jutf7-1.0.0.jar" scala 

probado con Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03-424, mixed mode)

Cuestiones relacionadas