項目有時為了方便配置數據字典,會創建類似于“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(); } } }
浙公網安備 33010602011771號