您的位置:首页 > 其它

关于页面编码问题的一点记录

2009-09-16 15:45 288 查看
页面编码是在做WEB开发时首要考虑的一个问题,最近做了一个Web项目,项目环境如下:

开发环境:

OS:windows xp

IDE:Netbeans 6.1+Macromedia Dreamweaver 8

平台:jdk1.6 + IE7+FF3.0

布属环境:

OS:linux

平台:tomcat 5.0+jdk1.5+mysql4.0

页面当然分为html和jsp两种,其中,布属于windows环境下的页面不会存在问题,只要在开发时将html和jsp页面都默认为UTF-8(<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />)即可,当jsp在与servlet或jsp之间传递中文字符时只需要通过常用的String phone = new String(phone1.getBytes("ISO8859-1"),"gb2312"); 方法转换(注根据需要换ISO8859-1为UTF-8)。因为中文版windows系统是默认gb2312或gbk(gb2312是gbk的子集)。因此,若系统是布属在windows环境下,则可以将页面统一成gb2312字符集。

可问题就在于若是而属在linux环境下的话,据我所知,linux默认的是ISO8859-1字符集,若能修改linux的默认字符集,当然是个好办法,但问题在于若是租用服务器,你根本不可能到人家系统里去改,呵呵呵,自适应吧!!!那么,对于html文件,由于ie对html的默认字符集是utf-8,因此,应将html的字符集改为utf-8(注意,最好用Dreamweaver 改,这样不会乱码)。若原来开发时即将jsp字符集默认为gb2312,则不用担心,IE会根据你页面的指定而决定浏览时采用何种字符集(但要注意,尽量一个工程中所有的jsp采用统一的字符集,便于管理)。

对于mysql数据库,最好采用与页面相同的字符集,由于我的页面采用gb2312,所以,布属于linux下的mysql也应使其每个表的Charset为gb2312,Collation为gb2312_chinese_ci(字符的,另一个bin是二进制的,其实差不多,我选的这个),此处一定要记住,对于数据表中的TEXT型字段,和有可能存在中文字符的Varchar型字符,也必须将其字符集改为gb2312,保证存入和读取中文字符的准确性。

总结,linux下,建议html采用utf-8字符集,当jsp是gb2312或gbk时也勿必使数据库也使用此种字符集,gb2312字符集范围较小,有些不常见的复杂汉字可能无法解释,即乱码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: