Spring MVC国际化中文乱码问题
在国际化Spring MVC应用的时候,是将语言区域(Locale)相关的文本元素单独存在一个独立的属性文件中,然后不同的Locale对应的属性文件就构成了一个ResourceBundle,在Spring MVC显示本地化的消息时就会根据所在的区域显示对应的文本。
今天实际操作后,发现页面显示中文正常,但是通过国际化显示的中文出现乱码,那是因为我们在属性文件XX_zh_CN.properties中写的是汉字,这个属性文件还需要通过jdk自带的native2ascii工具进行转化,这样文件中存的是汉字对应的Unicode,像下面这样。
转换之前
1 | greeting=你好啊 |
转换之后
1 | greeting=\u4f60\u597d\u554a |
native2ascii的使用方法是 把一个输入文件转换输出到另一个文件,比如下面我要转换labels_zh_CN.properties这个文件。
1 | ➜ native2ascii -encoding UTF-8 src/main/webapp/WEB-INF/resource/labels_zh_CN.properties src/main/webapp/WEB-INF/resource/labels_zh_CN.properties |