如何在java中使用中文和日文字符作为字符串?

时间:2010-11-01 09:03:35

标签: java unicode cjk

您好我使用的是java语言。在这里我必须使用一些中文,日文字符作为字符串并使用System.out.println()进行打印。

我该怎么做?

由于

4 个答案:

答案 0 :(得分:23)

Java Strings支持Unicode,所以中文和日文都没问题。但是,可能需要告诉其他工具(例如文本编辑器)和您的操作系统shell。

在读取或打印Unicode数据时,您必须确保控制台或流也支持Unicode(否则它可能会被问号替换)。

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

您可以直接在Java源代码文件中嵌入Unicode文字,但是您需要告诉编译器该文件是UTF-8(javac -encoding UTF-8

String x = "漢字";

如果你想疯狂,你甚至可以在方法,变量或类名中使用中文字符。但这违反了命名约定,我强烈反对它至少对于类名称(因为它们需要映射到文件名,Unicode可能会导致问题):

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

答案 1 :(得分:4)

使用它,Java Strings完全是unicode,因此没有什么难以说出

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

答案 2 :(得分:3)

有点过时,但它让我哇!

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

这篇文章是关于变量命名的,你可以告诉它直接在你的源代码中写下你的中文/日文字符串。

答案 3 :(得分:1)

还有一件事需要记住,Reader应该是BufferedReader,我的意思是:

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

必须这样做,因为当你读取文件时,可以调用readLine():

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

这个方法是我发现的唯一可以正常运行的方法,因为常规的Reader不包含非静态的readLine()void方法(此方法不接受任何内容)。