【问题标题】:Use cyrillic .properties file in eclipse project在 Eclipse 项目中使用西里尔文 .properties 文件
【发布时间】:2025-12-12 18:05:01
【问题描述】:

我正在开发一个小项目,我想为它使用国际化。问题是当我尝试使用带有西里尔符号的 .properties 文件时,文本显示为垃圾。当我对字符串进行硬编码时,它显示得很好。

这是我的代码:

ResourceBundle labels = ResourceBundle.getBundle("Labels");
btnQuit = new JButton(labels.getString("quit"));

在我的 .properties 文件中:

退出 = Изход

我得到了垃圾。当我尝试

btnQuit = new JButton("Изход);

显示正确。据我所知,UTF-8 是用于文件的编码。

有什么想法吗?

【问题讨论】:

  • 定义“据我所知”:-)

标签: java eclipse internationalization


【解决方案1】:

AnyEdit 是一个 Eclipse 插件,可让您轻松地将属性文件从 unicode 表示法转换为 unicode 表示法。 (避免使用像 native2ascii 这样的命令行工具)

如果您单独使用Properties 类(没有资源包),从Java 1.6 开始,您可以选择使用Reader(而不是InputStream)自定义编码的文件load

我猜你也可以使用new PropertyResourceBundle(reader),而不是ResourceBundle.getBundle(..),其中reader 是:

Reader reader = new BufferedReader(new InputStreamReader(
     getClass().getResourceAsStream("messages.properties"), "utf-8")));

【讨论】:

    【解决方案2】:

    Properties 默认采用 ISO-8859-1 编码。您必须使用 native2ascii 将您的 UTF-8 属性转换为有效的 ISO-8859-1 属性文件,其中包含所有非 ISO-8859-1 字符的 unicode 转义序列。

    【讨论】:

      最近更新 更多