将 UTF-8 消息发送到 Xpages

Sending UTF-8 message to Xpages

我有一个面向瑞典用户的 XPages 应用程序。

当我通过

向 facescontext 发送消息时
msg = propStrings.getProperty("gen_CustDateDecided") ;
FacesContext facesContext = FacesContext.getCurrentInstance();
facesContext.addMessage("msgBox", new javax.faces.application.FacesMessage(msg));

广播的文本驻留在属性文件中,采用 UTF-8 编码。

加载属性文件时,我确保它是以 UTF 格式读取的:

private Properties getPropertiesFromFile(String fileName) {
        Properties prop = new Properties();
        try {
            InputStream is = FacesContextEx.getCurrentInstance().getExternalContext().getResourceAsStream(fileName);
            BufferedReader r = new BufferedReader(new InputStreamReader(is, "UTF-8"));
            prop.load(r);
        } catch (Exception e) {
            XspOpenLogUtil.logEvent(null, null, fileName, Level.WARNING, null);
        }
        return prop;
    }

显示在 Xpage 消息控件上的文本: Senaste beslutsdatum i kundkommittén

属性文件中的文本: gen_CustDateDecided=Senaste beslutsdatum i kundkommittén

我做错了什么?

属性 文件未编码为 UTF-8。它们是 ISO 8859-1。您需要相应地对它们进行编码。最简单的方法是在独立 Java class 中使用几行来保存属性。负责编码。

这里有更多详细信息: How to use UTF-8 in resource properties with ResourceBundle