>>分享Java Web开发技术,并且对孙卫琴的《Tomcat与Java Web开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 28938 个阅读者 刷新本主题
 * 贴子主题:  浏览器端ISO-8859-1编码,服务器端用GB2312转换编码的原理 回复文章 点赞(0)  收藏  
作者:sunshine    发表时间:2018-09-04 05:45:20     消息  查看  搜索  好友  邮件  复制  引用

String username=request.getParameter("username");
if(username!=null) //把请求参数转换为GB2312编码
  username=new String(username.getBytes("ISO8859-1"),"GB2312");


ISO-8859-1编码是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号。ISO-8859-1收录的字符除ASCII收录的字符外,还包括西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号。欧元符号出现的比较晚,没有被收录在ISO-8859-1当中。
  因为ISO-8859-1编码范围使用了单字节内的所有空间,在支持ISO-8859-1的系统中传输和存储其他任何编码的字节流都不会被抛弃。换言之,把其他任何编码的字节流当作ISO-8859-1编码看待都没有问题。这是个很重要的特性,MySQL数据库默认编码是Latin1就是利用了这个特性。ASCII编码是一个7位的容器,ISO-8859-1编码是一个8位的容器。
  Latin1是ISO-8859-1的别名,有些环境下写作Latin-1。



iso8859-1编码表示的字符范围很窄,无法表示中文字符。但是,由于是单字节编码,和计算机最基础的表示单位一致,所以很多时候,仍旧使用 iso8859-1编码来表示。而且在很多协议上,默认使用该编码。比如,虽然"中文"两个字不存在iso8859-1编码,以gb2312编码为例,应该是"d6d0 cec4"两个字符,使用iso8859-1编码的时候则将它拆开为4个字节来表示:"d6 d0 ce c4"(事实上,在进行存储的时候,也是以字节为单位处理的)。而如果是UTF编码,则是6个字节"e4 b8 ad e6 96 87"。很明显,这种表示方法还需要以另一种编码为基础。

*/


程序猿的技术大观园:www.javathinker.net
  Java面向对象编程-->输入与输出(下)
  JavaWeb开发-->Web运作原理(Ⅳ)
  JSP与Hibernate开发-->持久化层的映射类型
  Java网络编程-->Java反射机制
  精通Spring-->Vue Router路由管理器
  Vue3开发-->通过Vuex进行状态管理
  JSP 自动刷新
  JSP 隐含对象
  编写Servlet过滤器
  Servlet入门范例的创建和运行
  HTTP和HTTPS的请求和响应
  servlet三种方式实现servlet接口
  30分钟学会使用Spring Web Services基础开发
  Tomcat中对静态资源的处理
  读《Tomcat与JavaWeb开发技术详解》的笔记
  Java Web开发 快速入门
  Java微信Java SDK方式进行网页授权
  深入解读HTTP Session
  HTTP各个协议版本的特点
  我是如何成为一个Java Web开发者的
  转:Tomcat配置手册
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。