Java Properties类加载方法的西班牙语编码问题

时间:2019-04-22 00:08:33

标签: java java-8

我正在尝试对西班牙语进行编码以实现国际化,并使用Java Properties类的load方法填充它以将其传递给前端。

我尝试使用UTF-8对其进行编码,但是重音符号仍然无法正确显示。

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.Properties;

public class Message extends Properties {

    public static void main(String[] args) throws IOException {
        String spanish = "label=Sí";
        Message messages = new Message();
        messages.load(new ByteArrayInputStream(spanish.getBytes(Charset.forName("UTF-8"))));

        System.out.println(messages.get("label"));

    }

}

当我运行上面的代码时,我得到的文本为“SÃ--”。如何检索与“Sí”相同的文本?

1 个答案:

答案 0 :(得分:1)

尝试使用ISO-8859-1可获得预期结果:

 messages.load(new ByteArrayInputStream(spanish.getBytes(Charset.forName("ISO-8859-1"))));

有关ISO-8859-1的更多信息,请访问以下链接: https://en.wikipedia.org/wiki/ISO/IEC_8859-1