这几天被数据库中的一个用户名字中的“嬿”字给搞的头痛,以后我孩子肯定不给起这种带生僻字的名字。到时候容易给户籍系统的程序员带来麻烦。:)
开始以为是因为字符转换的问题,于是就开始想办法转换成可识别的编码格式。于是写了一个字符转换的JavaBean,命名为stringConvert.java。包含两个方法:
① public String convertDecode(String str){
String newStr = null;
try{
newStr = new String(str.getBytes("ISO8859_1"),"gb2312");
}
catch (Exception ex){
ex.toString();
}
return newStr;
}
② public String convertEncode(String str){
String newStr = null;
try{
newStr = new String(str.getBytes("gb2312"),"ISO8859_1");
}
catch (Exception ex){
ex.toString();
}
return newStr;
}
很简单吧,如果有什么个性需求可以自己向Bean中添加。
本以为把字符转换程序加进去就可以了,可万没想到的是,本来可以显示的汉字全部变成了乱码。弄巧成拙了不是。只好再恢复回原来的样子,又调试了几次,突然一下子正常了。可到现在我还没弄清为什么正常了。噢,忘记说了,我连接的是MS_SQLServer,WR的产品向来对中文的支持都够强,不需要费二遍事。可缺点就是老是会出一些让我这种菜虫搞不明白的问题。(如果有高手明白的话,可以指教1、2)
不过上面用来转换字符格式的JavaBean倒是没有白写,可以用到MySQL这种对中文支持不强的数据库中。(实际操作过,可行)