有没有办法以UTF-8格式在struts 1.x中存储资源文件(.properties)。每当我保存文件时,它都以ISO-8859格式保存。
另外,我可以在struts目录的resources文件夹中创建一个文本文件,它将作为属性文件(这样文本文件可以保存为UTF-8格式),并在我的应用程序中读取该文件以显示静态希腊文,俄文或任何语言的文本。
我已阅读以下内容并尝试提出解决方案,但它无效:
https://stackoverflow.com/a/863854/3493471
使用此代码如下所示:
import java.util.Properties;
import java.io.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class PropertiesListener {
private static Log log = LogFactory.getLog(PropertiesListener.class);
protected static Properties readProperties(String name){
Properties prop = new Properties();
InputStream inputStream = null;
try {
//inputStream = new FileInputStream(name);
inputStream = EditMailboxAction.class.getResourceAsStream(name);
Reader reader = new InputStreamReader(inputStream, "UTF-8");
log.debug("Length :: "+reader.ready());
try {
prop.load(reader);
} catch(Exception ex){
log.debug("1111111111111111111111111");
ex.printStackTrace();
}finally {
reader.close();
}
}catch(FileNotFoundException ex){
log.debug("22222222222222222222");
ex.printStackTrace();
}catch(Exception ex){
ex.printStackTrace();
}
finally {
}
return prop;
}
}
我已使用以上函数调用此函数:
Properties properties = PropertiesListener.readProperties("myProperties.properties");
但它没有帮助。
由于myProperties.properties没有存储UTF-8 Charectors,我不明白如何
Reader reader = new InputStreamReader(inputStream, "UTF-8");
将有助于阅读UTF-8 charectors。
答案 0 :(得分:0)
搞定了。我修改了struts-config.xml,它可以工作。