【问题标题】:Sending UTF-8 message to Xpages向 Xpages 发送 UTF-8 消息
【发布时间】:2021-04-30 08:29:58
【问题描述】:

我有一个针对瑞典用户的 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 belutsdatum i kundkommittén

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

我做错了什么?

【问题讨论】:

    标签: java jsf utf-8 xpages facescontext


    【解决方案1】:

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

    更多细节在这里: How to use UTF-8 in resource properties with ResourceBundle

    【讨论】:

    • 很高兴知道,我假设它们会这样保存,因为我可以在编辑器中设置应该保存哪些格式文件
    猜你喜欢
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-27
    • 1970-01-01
    • 2019-09-16
    • 2015-07-13
    • 2014-04-25
    相关资源
    最近更新 更多