2011-05-31 102 views
9

Necesito su ayuda aquí por favor. Estoy trabajando en una aplicación java que convierte datos de un archivo txt a la base de datos. El problema es que el archivo tiene codificación ANSI que no puedo cambiar porque viene de fuera de mi aplicación, y cuando escribo los datos en la base de datos tengo algunos "???" dentro. Mi pregunta es, ¿cómo puedo convertir los datos que leo del archivo de ANSI a UTF-8 que puede manejar esos símbolos de weired. He intentado el byte [] a la conversión de cadenas, pero no funcionó.Convertir un archivo txt de ANSI a UTF-8 mediante programación

+1

Si entiendo bien, debe usar UTF-8 al abrir el flujo de entrada, como 'new InputStreamReader (inputStream," UTF-8 ");' – MByD

+0

@MByD, muchas gracias por su recomendación, desafortunadamente lo intenté pero no funcionó, siempre el mismo resultado. – wlegend

+0

Hola a todos, he encontrado la respuesta, y gracias a un MBYD, en lugar de usar UTF-8 como codificación, debería dar la codificación de entrada que es "windows-1252", y ahora no hay más símbolos weiird – wlegend

Respuesta

6

Uso abrir una decoding Reader como éste:

Reader reader = 
    new InputStreamReader(inputStream, Charset.forName(encodingName)); 

exaclty qué codificación nombre que debe utilizar depende de which "ANSI" encoding el archivo de texto fue escrito en Puede encontrar una lista de codificación con el apoyo de Java 6 here.. Si se trata de un sistema en idioma inglés, es probable que sea windows-1252.

La escritura de datos en la base de datos depende correctamente de la configuración correcta de la base de datos y (a veces) de la configuración correcta del controlador JDBC.

Puede leer más sobre manejo de codificación de caracteres en here y here.

Cuestiones relacionadas