将 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
我有一个面向瑞典用户的 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