Spring读取配置文件的中文值乱码问题的解决

日前做项目,发现以@Value注解读取properties文件中的中文值出现乱码,造成bug,上网查找,发现有N种方案,神马在idea、Eclipse中显示正常的统统不看,我是要保证程序执行的时候正确,IDE编辑的时候查看是不是正确并不重要。

方案1,将中文字转成unicode字符,存在properties文件中,这是最简单的托底方案,可以用来救急。但这样的properties文件可读性实在太差。

方案2,使用yaml格式或者xml格式。改用了yaml格式,咦,还是乱码,放弃。

方案3,使用@PropertySource注解来代替XML里的配置。咦,还是乱码,放弃。

@PropertySource(value = "classpath:xxx.properties",encoding = "UTF-8")

方案4,在context:property-placeholder标签中加入file-encoding属性。咦,还是乱码,放弃。

<context:property-placeholder location="classpath:xxx.properties" file-encoding="UTF-8"/>

嗯?这些方案都乱码,难道非得用方案1吗?等下,一定有哪里忽略了。

再仔细看了下,在context:property-placeholder标签中使用前,必须在PropertyPlaceholderConfigurer的bean中登记,这个地方有没有编码配置呢?加上编码配置,果然OK。

<property name="fileEncoding" value="UTF-8"></property>

现在回想,方案2、方案3,是不是都是因为缺少这一行代码造成还是乱码的呢?目前还没验证。

js解码base64中文乱码问题

编码过程肯定是没有问题的,看到前面加颜色那段字了没,就是我解出来的编码虽然是utf8,但是将中文文字进行Base64编码再解码后,重新排列编码的时候,往往就会出现乱码,UTF8页面的编码实际还是用UTF-16存储的。应该在解码后把UTF8还原为UTF-16格式。这样就能真正搞定 javascript解密中文base64编码的问题了。

附件列表

 

pidgin 界面中文乱码解决

因为 Pidgin 所基于的 GTK 跟 Windows
本身的字体显示子系统是完全不沾边的,所以装上以后无法显示中文,人名显示出来的全是乱码。解决办法是分两步:

1.   C:\Program
Files\Common Files\GTK\2.0\etc\gtk-2.0\gtkrc
把里面的

gtk-font-name = “sans 8&Prime;

改为

gtk-font-name = “SimSun 9&Prime;

2.   然后运行 C:\Program
Files\Common Files\GTK\2.0\bin\gtkthemeselector.exe

,并选择任何一个非 MS-Windows 的主题。最后,重新运行 Pidgin 就可以了。

第二步是关键,不修改主题中文依旧是乱码

QQ所有信息显示为NULL,解决:
我使用的是Pidgin2.4.0版的,只要安装前一版本的gtk+包即可。
但仍有部分群的名称显示为NULL(不影响使用)

utf-8编码引起js输出中文乱码的解决办法

如果web application的编码规则是utf-8,如网页头中的:
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />

那么js文件中如果有中文输出就会出现乱码,解决此个问题可在引用javascript输出的地方加上charset=”gb2312″ 或 charset=”big5″(假设输出的是Big5繁体字)。

例:
<script type=”text/javascript” language=”javascript” src=”scripts/output.js” charset=”gb2312″></script>

PS:另一种解决方法是把js文件保存为utf-8编码。

博主点评:晕,这么简单的方法,原来我一直想有没有什么办法能够把Javascript的结果由GB2312转到UTF-8,找到了PHP的mb_convert_encoding,但由于不会把Javascript的输出结果指定为字符串从而一筹莫展,没想到居然有这么简单的办法。看来凡事都要多用两个角度想想。

转载自http://www.cnblogs.com/zgqys1980/archive/2007/11/13/957653.html