中文乱码解决方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

GBK
GBK是<<汉字内码扩展规范>>的简称,是 在GB2312的基础上进行的扩充。 GBK收录了21886个汉字和符号,其中汉字 21003个,图形符号883个。并且与GB2312 编码完全兼容。
GB18030
GB18030是由国家信息产业部和质量监督总 局于2000年发布的编码方式,在GB2312和 GBK的基础上进行的扩充,增加了一些新的 字符,主要包括少数名族使用的字符。主要 解决疑、难、偏等字符问题。
简体中文GBK
繁体中文Big5 日文 韩文
Java中字符的表示与处理
Java中的字符主要通过char、byte和 String这3种类型表示。 char表示的是一个unicode字符,String 是字符串(多个char类型字符的序列)。字 符串在网络传输或者存储前需要转换成 byte类型的数组。从网络接收或从存储设 备读取的内容一般都是byte类型的数组。

源码见:UserLogin(V1.4.1)
测试分页的效率
实际应用中,一张表中的记录会有十几万条,甚 至上百万条。扩大表中的记录个数,查看分页效 率如何。
Insert into userInfo(UserName,Password,E-mail,Sex,Grade) select UserName,Password,E-mail,Sex,Grade from userInfo
本章内容
1.了解字符集与编码方法 2.Java中字符的表示与处理 3.Web开发中的各种中文乱码解决方法
字符集与编码方法
字符集 ASCII
ISO8859-1 GB2312 GBK
字符编码 ASCII
ISO8859-1 GB2312 GBK
对应语言 英语
拉丁字母 简体中文 简体中文
GB18030
sendRedirect()应用案例
对用户登录系统进行改进,在欢迎界面显示 用户的姓名。
源码见UserLogin(V1.1)
隐藏表单
隐藏表单是最常见的一种方式,也是最简单的 一种。 <form action=login> <input type=hidden name=oyhj value=aaa> </form>
Big5 Unicode
GB18030
Big5 UTF-8
简体中文
繁体中文 多国语言
wk.baidu.com
ASCII编码
ASCII使用7个比特进行编码,最多可表示 128个字符。包括大小写英文字母,阿拉伯 数字、标点符号、控制字符等。每个字符用 一个字节表示,字节的最高位是0。 A的ASCII表示方法: 01000001
BIG5
Big5又称作大五码,是针对繁体汉字的编码 方式。目前主要用在香港、台湾、澳门的计 算机系统中。它也是双字节编码,一共收录 了5401个常用字和7652个次常用字。
Unicode
1991年unicode组织把世界上几十种文字整 合在一个字符集中。Unicode中的每一个字 符都有一个唯一的数字进行表示。 现在unicode已经被广泛的使用,Java语言、 Window XP、和MS office等软件内部都使 用了unicode编码。 官方网址:www.unicode.org 最新版本是5.0
采用该SQL语句,表中记录成2的指数倍增加。
显示上一页和下一页
如果要分的页数大多,也不利用用户选择,此 时可添加上一页和下一页功能。

源码见:UserLogin(V1.4.2)
Servlet中访问数据库
建议:Servlet里面不要写太多的业务逻辑,这样 不利用修改,而且影响程序的层次结构。 源码见:UserLogin(V1.3.1)
在Servlet中显示图片
(1) 在Web应用的目录下,建立一个专门用来 保存图片的文件夹(例如Image)。 (2) 在Servlet里面添加代码: <img src=“Image/图片名”>即可。 源码见:UserLogin(V1.3.2)
Codepage
Unicode不兼容GB2312、GBK和Big5等字符集,也不兼 容其他国家的字符集,为了能顺利实现unicode和其他字 符集之间的转换,需要使用codepage技术。 Codepage是各种字符集和Unicode之间的映射表。
codepage
字符集
936
950 932 949
分页技术案例
对用户管理系统进行修改,在欢迎界面分页 显示所有合法用户的相关信息。 见源码:UserLogin(V1.4)
利用超链接显示第几页
利用超链接将分页的个数显示出来,用户可 以随意查看第几页的内容。 在Welcome页面完成超链接,本质是 Welcome自己连接自己,但是要将“第几页 的信息”传递进来。

见源码:HiddenFormTest
Session技术
当用户打开浏览器访问某个网站时,网站服务 器就会在它的内存为这个浏览器分配一个“空 间”,这个“空间”被该浏览器独享。空间中 存放的数据默认生存时间是30min,可以修改。
Session在Web中的应用
(1) 实现网上交易平台的购物车功能。 (2) 保存用户的登录信息 (3)防止用户非法登录到某个页面
以SQL Server为例:将第N页的记录显示出来,可采用如下 SQL语句: Select top pageSize * from userInfo where UserID not in (select top pageSize*(pageCurrent-1) UserID from userInfo);
ISO8859-1
又称作扩展的ASCII编码,采用8比特进行编 码。新增的字符主要用来支持部分欧洲国家 所使用的语言,例如:德语、葡萄牙语、西 班牙语等。ISO8859-1兼容ASCII编码。
GB2312
1981年,开始使用<<信息交换用汉字编码字符集-基本集 >>,GB2312。 GB2312使用双字节编码,一共包含了7445个字符,包括 6763个汉字。对汉字分了两级,一级常用汉字3755个汉字, 按照拼音排序。二级汉字次常用汉字3008个。按照部首排 序。 GB2312主要应用在中国大陆和新加坡,几乎所有的中文系 统和国际化软件都支持GB2312,同时也支持ASCII编码。
Session使用的注意事项
1. Session中属性默认的生存时间是30min,可以 对时间进行修改。a)在web.xml文件中(服务器的)。 b)在程序中修改。 2.Session属性的过期时间指的是间隔时间,而不 是累计时间。 3.当某个浏览器访问网站时,服务器会给每个浏览 器分配一个唯一的Session id,用来区分每个浏览 器。 4.因为Session的属性是要占用服务器内存的,建 议谨慎使用Session。
注: (1)是当前Web服务器下所有web应用的公共jar包。 (2) 是当前web应用的jar包。
Servlet中操作数据库
将用户登录系统进行改进,用户名和密码放在数据库里。 创建数据库脚本: create table userInfo ( UserID int not null auto_increment, UserName varchar(10), Password varchar(10), E-mail varchar(30), Sex varchar(10), Grade int, primary key(UserID)); 源码见:UserLogin(V1.3)
Session应用案例
在用户登录中,防止用户非法登录到欢迎界 面。 见源码:UserLogin(V1.2)
Servlet中操作数据库
Servlet中操作数据库,与普通java文件中操作 数据库类似,需要注意的是要将JDBC驱动的 jar包引入。
(1)将JDBC驱动的jar包放到
%TOMCAT_HOME%\common\lib目录中。 (2)将JDBC驱动的jar包放到当前应用的lib目录里。
Session的使用
可以把Session理解成一张二维表,这个表有 两列。每一行是Session的一个属性,行数没 有限制。 一个属性包括两个部分,一个部分是属性的名 字,另一个是属性的值。
Session Name Value
Session的使用
(1) 得到Session对象 HttpSession hs=request.getSession(true); (2) 向Session添加属性 hs.setAttribute(String name,Object value); (3) 从Session得到某个属性 String name=hs.getAttribute(String name); (4) 从Session中删除某个属性 hs.removeAttribute(String name);
注:img是Html语言里面的一个标签。
Web应用中的分页技术
分页是任何一个网站(bbs,购物商城,blog) 等必备的显示技术之一,因此有必要掌握。
分页技术
分页算法: (1) int pageSize: 每页显示多少条记录 (2) int pageCurrent:当前显示第几页 (3) int pageCount:共有多少页 (4) int rowCount:共有多少条记录 if(rowCount%pageSize==0) pageCount=rowCount/pageSize; else pageCount=rowCount/pageSize+1;
Java web中文乱码解决方法
1.调用JSP页面显示乱码 2.
Cookie在Web应用中的表现
1.保存用户名、密码,在一定时 间内不用登录。
2.记录用户访问网站的喜好(例如 网站背景音乐等)
3.网站的个性化服务,例如定制 服务、内容等。例如订阅天气预 报等
sendRedirect()方法
分页技术
以MySQL为例:将第N页的记录显示出来,可采用如下SQL 语句:


select * from userInfo limit (N-1)*pageSize,pageSize;
注:limit子句使用方法: (1) select * from userInfo limit M; 将表中前M条记录取出 (2) select * from userInfo M,N; 从表的第M+1条记录开始向后取出N条。
通过该方法将一个信息传递给下一个页面, 例如: sendRedirect(“welcome?userName=oyhj”); 的形式。
优点:传递信息的速度很快。 缺点:它只能传递一个字符串,而不能传递对 象。
sendRedirect()方法(续)
sendRedirect(“welcome?userName=oyhj ”); (1) welcome代表要跳转到的servlet的url。 (2) servlet名和变量名之间要有个?。 (3) 如果传递两个以上的变量,变量之间要 用&。 (4) 如果传递的是中文,需要进行编码处理。
相关文档
最新文档