繁体   English   中英

属性文件中的Java西班牙语编码

[英]Java Spanish Encoding in Properties File

因此,我正在研究一个本地化示例以及使用ResourceBundle进行操作的常规方法,并且似乎所有内容都不支持UTF-8,因此我将继续研究Properties

我知道它的实际属性很好,但是在西班牙文文件中,它不喜欢重音符号。 我用UTF-8阅读,但不在乎,只是显示与以前不同的符号。

输出:

íHola!
┐C¾mo estßs?
íAdi¾s!

预期产量:

¡Hola!
¿Cómo estás?
¡Adios!

属性文件:

greetings = ¡Hola!
farewell = ¡Adiós!
inquiry = ¿Cómo estás?

码:

import java.util.*;
import java.io.*;

public class Test{

    public static void main(String[] args) throws IOException {
        String language;
        String country;

        if (args.length != 2) {
            language = new String("en");
            country = new String("GB");
        } else {
            language = new String(args[0]);
            country = new String(args[1]);
        }

        String file = String.format("lang_%s_%s.properties",language,country);

        InputStream utf8in = Test.class.getClassLoader().getResourceAsStream(file);
        Reader reader = new InputStreamReader(utf8in, "UTF-8");
        Properties props = new Properties();
        props.load(reader);

        System.out.println(props.getProperty("greetings"));
        System.out.println(props.getProperty("inquiry"));
        System.out.println(props.getProperty("farewell"));
    }

}

我只花了大约40分钟的时间阅读我能找到的所有内容,它们要么与我现在所获得的完全相同,要么略有不同,并且在尝试时产生了相同的结果。

有人可以告诉我如何获得期望的输出吗?

在Eclipse中,我可以重现该问题。 步骤如下:

  1. 创建Java项目并将Text文件编码设置为CP850
  2. 创建运行/调试配置 ,将VM参数设置为-Dfile.encoding=ISO8859-1 确认“公共”选项卡中的“ 编码”设置为CP850
  3. 运行java程序。

当java程序打印到标准输出时,这些字符变为ISO8859-1字节。 这些字节使用CP850重新编码并显示在控制台视图中。

这是一个配置问题。 确保编码与正在运行的程序的file.encoding相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM