1. The Chinese reading garbled problem that easily occurs when reading .properties files
1. The original code does not add rules for reading .properties files.
public class CityCodeUtils {
private static Properties properties = new Properties();
public static String DEFAULT_CODE = "101010100";
private CityCodeUtils() {
}
static {
ClassLoader classLoader = CityCodeUtils.class.getClassLoader();
InputStream is = classLoader.getResourceAsStream("文件名.properties");
try {
properties.load(is);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public static String getCityCode(String cityName) {
String code = properties.getProperty(cityName, "101010100");
return code;
}
}
Debug running screenshot:
2. Add .properties reading rules
public class CityCodeUtils {
private static Properties properties = new Properties();
public static String DEFAULT_CODE = "101010100";
private CityCodeUtils() {
}
static {
ClassLoader classLoader = CityCodeUtils.class.getClassLoader();
InputStream is = classLoader.getResourceAsStream("文件名.properties");
try {
//解决读取properties文件时的中文乱码问题
//给中文读取设置为utf-8编码规则 若不加BufferedReader 设置的编码规则
//则很有可能在读取文件名.properties 时出现乱码
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is,"utf-8"));
properties.load(bufferedReader);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
debug screenshot:
So far the problem has been solved!