>>分享Java Web开发技术,并且对孙卫琴的《Tomcat与Java Web开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 23822 个阅读者 刷新本主题
 * 贴子主题:  浏览器端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开发-->JSP中使用JavaBean(Ⅱ)
  JSP与Hibernate开发-->立即检索和延迟检索策略
  Java网络编程-->XML数据处理
  精通Spring-->Vue Router路由管理器
  Vue3开发-->虚拟DOM和render()函数
  设置请求数据的字符编码的过滤器
  一个最简单的JSP入门程序
  Resin部署安装
  如何确定线程池大小
  javaWeb自定义标签用法实例详解
  《Tomcat与JavaWeb开发技术详解》第三版升级感悟
  过滤器的详细用法
  JSP中对异常的处理
  用Servlet API中的Part接口实现文件上传
  使用异步处理机制改进Web应用性能
  关于把JSP文件放在Web应用的WEB-INF目录下的优缺点的探讨
  转:Tomcat配置手册
  Servlet中取不到Cookie的原因和解决办法
  孙卫琴的JavaWeb视频教程的源代码下载
  Tomcat容器管理安全的几种验证方式
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


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