Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo resolver el problema de los caracteres confusos al leer archivos txt en chino

Cómo resolver el problema de los caracteres confusos al leer archivos txt en chino

Leer chino de archivos txt guardados por tarjeta SD en sistemas Android causará problemas de código confuso. ¿Cómo resolver este problema de código confuso? Hay muchas soluciones en Internet, como usar String temp1 = EncodingUtils.getString(strLine.getBytes(), " GB2312"); pero no aplicable en todas las situaciones. ); pero no es aplicable a todas las situaciones. Para resolver el problema de los caracteres confusos, primero debe comprender por qué ocurren los caracteres confusos. Esto se debe a que los archivos txt se guardan en formato ANSI de forma predeterminada en los sistemas Win, y Android actualmente solo admite la codificación UTF-8, por lo que los archivos txt leídos en sistemas Android chinos producirán caracteres confusos. Algunas personas dicen que guardar texto directamente en formato de codificación UTF-8 puede resolver el problema de los caracteres confusos, pero este método no soluciona la causa raíz y no se puede pedir a los usuarios que cambien el formato manualmente. Así que todavía necesitamos encontrar una manera de manejar este programa.

La siguiente es una prueba realizada en un determinado formato de codificación:

Texto de prueba: 122.11196, 29.90573, segmento de código de prueba de la planta de residuos sólidos de Beilun:

lector= new BufferedReader (nuevo FileReader (nombre de archivo));

strLine=reader.readLine();

String temp1 = EncodingUtils.

String temp1 = EncodingUtils.getString ( strLine.getBytes(), "GB2312");

String temp2 = EncodingUtils.getString(strLine.getBytes("utf-8"), "utf-8"); > String temp3 = EncodingUtils.getString(strLine.getBytes(), "utf-8");

Almacenar archivos en formato Unicode

Este método puede obtener una visualización en chino no confusa. Pero para los números de latitud y longitud obtenidos en formato utf-8, el uso de double lon = Double.parseDouble(lat); informará un error NumberFormatException porque el método parseDouble() no puede manejar números latinos.

Guarde el archivo en formato ANSI

Cambie el código a:

reader = new BufferedReader(new InputStreamReader(new FileInputStream(filename), "GB2312"));

strLine=reader.readLine();

String temp1 = EncodingUtils.getString(strLine.

String temp1 = EncodingUtils.getString(strLine.getBytes(), "GB2312")

String temp2 = EncodingUtils.getString(strLine.getBytes("utf-8"), "utf-8");

String temp3 = EncodingUtils.getString(strLine.getBytes) ( ), "utf-8");

Resuelve el problema de los caracteres chinos confusos y el problema del error Double.parseDouble(lat)

.