Topic: 请教高手编码问题 (显示乱码) |
Print this page |
1.请教高手编码问题 (显示乱码) | Copy to clipboard |
Posted by: seeker Posted on: 2004-05-26 17:32 数据库使用的是8859_1的编码,我保存一条记录到数据库里,做如下的转换
数据库里不会发生编码丢失,也不会是乱码 但是如果显示的时候,GBK编码的字符串如果用8859_1的编码来读,为什么页面上就是乱码了? 我做手工转换和显示的时候有什么区别?忘高手指教! |
2.Re:请教高手编码问题 (显示乱码) [Re: seeker] | Copy to clipboard |
Posted by: javaisme Posted on: 2004-05-27 09:10 如果要正常显示,再转换成可以显示中文编码 如果是jsp,在页面最前面加上: <%@ page contentType="text/html;charset=GBK" %> 如果是在javabean 封装类里加上这些方法,方便转换; public String getStr(String str)//对中文作内码转换 { try { String temp_p=str; byte[] temp_t=temp_p.getBytes("ISO8859-1"); String temp=new String(temp_t,"GBK"); return temp; } catch(Exception e) { } return "null"; } public String getStrISO(String str)//对中文作内码转换 { try { String temp_p=str; byte[] temp_t=temp_p.getBytes("ISO8859_1"); String temp=new String(temp_t); return str; } catch(Exception e) { } return "null"; } public String getStrGBK(String str)//对中文作内码转换 { try { String temp_p=str; byte[] temp_t=temp_p.getBytes("Unicode"); String temp=new String(temp_t, "Unicode"); return str; } catch(Exception e) { } return "null"; } |
3.Re:请教高手编码问题 (显示乱码) [Re: seeker] | Copy to clipboard |
Posted by: seeker Posted on: 2004-05-27 10:20 谢谢楼上的回复,我想知道的是为什么 new String(str.getBytes("GBK"), "8859_1") 这样转码不会得到乱码,而显示的时候GBK用8859_1显示会得到?号 |
4.Re:请教高手编码问题 (显示乱码) [Re: seeker] | Copy to clipboard |
Posted by: tintin365 Posted on: 2004-06-03 09:01 new String(str.getBytes("GBK"), "8859_1") 这句表示将str从gbk转化到8859-1 显示的时候,因为中文字符在8859-1中不存在,当然是乱马了。 不过强烈简易你不要用这些方法实现中文化 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |