读取配置文件的配置字典数据(字典数据包含中文)

发布时间 2023-04-06 11:28:53作者: CccccDi

       项目有时为了方便配置数据字典,会创建类似于“test=测试” 的key-value形式的数据字典,在项目启动时便缓存该字典数据,方便后续使用;但是该字典有时候又存在中文,在加载之后会出现乱码问题,便需要对加载的数据进行特殊处理。

public class ConfigUtils {

    /**
     * 加载数据字典配置文件
     * @param propertyFileName  数据字典文件名称
     * @param propertiesMap    全局map,方便后续使用
     */
    public static void loadAllProperties(String propertyFileName, Map<String, String> propertiesMap) {
        try {
            Properties props = PropertiesLoaderUtils.loadAllProperties(propertyFileName);
            for (Object key : props.keySet()) {
                String keyStr = key.toString();
                try {
                    // PropertiesLoaderUtils的默认编码是ISO-8859-1,在这里转码一下
                    propertiesMap.put(keyStr, new String(props.getProperty(keyStr).getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8));
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}