如何以UTF-8格式在struts中存储资源文件

时间:2014-06-05 09:45:50

标签: java utf-8 struts-1 properties-file struts-config

有没有办法以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。

1 个答案:

答案 0 :(得分:0)

搞定了。我修改了struts-config.xml,它可以工作。