2010-11-01 19 views

Respuesta

21

Las cadenas de Java son compatibles con Unicode, por lo tanto, chino y japonés no son un problema. Sin embargo, otras herramientas (como editores de texto) y el shell de su sistema operativo probablemente deban ser contadas al respecto.

Al leer o imprimir datos Unicode, debe asegurarse de que la consola o la transmisión también sean compatibles con Unicode (de lo contrario, es probable que se reemplacen con signos de interrogación).

Writer unicodeFileWriter = new OutputStreamWriter(
    new FileOutputStream("a.txt"), "UTF-8"); 
unicodeFileWriter.write("漢字"); 

Puede incrustar literales Unicode directamente en los archivos de código fuente de Java, pero hay que decirle al compilador que el archivo está en UTF-8 (javac -encoding UTF-8)

String x = "漢字"; 

Si quieren ir salvaje , incluso puede usar caracteres chinos en el método, variable o nombres de clase. Pero eso es en contra de las convenciones de nombres, y me desalentar fuertemente que al menos para los nombres de clase (debido a que se deben asignar a los nombres de archivo, y Unicode puede causar problemas allí):

結果 漢字 = new 物().処理(); 
+0

No tengo caracteres chinos en mi teclado, entonces, ¿qué código debo escribir para imprimir el carácter chino? – sjain

+1

¿Qué sistema operativo está utilizando? No necesita un teclado especial, esto es cuidado con el software. Por ejemplo, escribí 漢字 como "kanji + ESPACIO". Además, copie/pegue desde un navegador web u otras fuentes. – Thilo

+0

¿Qué pasa si los caracteres chinos no están en un archivo? Quiero decir, ¿hay algún escritor Unicode directo que pueda manejar eso? –

3

Sólo usarlo, Java cadenas son completamente Unicode, por lo que no debería haber nada difícil de decir simplemente

System.out.println("世界您好!"); 
+0

Solo asegúrese de que sus archivos de código fuente estén codificados en Unicode si usa constantes que no sean ASCII. – AlcubierreDrive

+1

Puede necesitar ajustar la configuración regional para admitir UTF-8 en System.out, y decirle al compilador que su archivo fuente está en UTF-8. – Thilo

3

Un poco anticuado, pero me hizo wow!

http://xahlee.org/java-a-day/unicode_in_java.html

El artículo trata sobre bu variable de nombres del que se puede decir que es suficiente para escribir la cadena de chino/japonés directamente en su fuente.

1

Una cosa más para recordar , el lector debe ser BufferedReader, y lo que quiero decir es:

BufferedReader br = new BufferedReader (new InputStreamReader (new FileInputStream (f), "UTF-8")); 

esto debe hacerse porque cuando se lee el archivo, readLine() puede ser llamado:

while (br.readLine() != null) 
{ 
    System.out.println (br.readLine()); 
} 

este El método es el único que encontré que puede funcionar normalmente porque un lector regular no contiene un método vacío readLine() no estático (este método no acepta nada).

Cuestiones relacionadas