首页 技术 正文
技术 2022年11月11日
0 收藏 359 点赞 4,117 浏览 1202 个字

1.乱码 — 编码集
   编码集的本质是让数字与字符产生一个映射关系,不同的编码集映射实现也不同
   比如UTF-8: “中”—-> -28  -72  -83 对应三个字节
       GBK:   “中”—-> -42  -48      对应两个字节
2.乱码 — 编码集(特殊情况)
   a.编码集之间支持的字符不同时,会产生乱码,比如UTF-8支持中文,使用不支持中文
     的ISO-8859-1解析,会出现乱码
   b.编码集支持的字符相同的情况时,转换字符使用的编码集是会出现乱码
3.常见的乱码场景
     a.IO流操作,进行流读取时,数据源是GBK编码集,而程序是UTF-8编码集,导致乱码
     b.IO流操作,进行流写出时,程序是UTF-8的,默认文件默认是GBK的,但是竟然没有乱码
 
   总结:字符串在不同程序之间进行传输时,有两种传输依据:
         i.以字节为依据
            A中存储字符”中”(GBK编码集 -42 -48),传输给B,直接传输字节-42 -48
         ii.以字符为依据
             A中存储字符”中”(UTF-8编码集 -28 -72 -83),传输给B(不管默认编码集),直接按照UTF-8编码集存储文字
      c.数据库操作:
           eclipse使用编码集GBK,传输中文字符”中”,到MySQL,而MySQL使用编码集(UTF-8),MySQL存储未出现乱码,
           因为MySQL会先使用GBK编码集将字节转换成字符,然后再使用UTF-8转化成字节之后再用UTF-8转换成字符存储起来
4、JavaWEB 中乱码问题
   响应:
    response.setCharacterEncoding(“UTF-8”);//告诉Tomcat 使用 UTF-8
    response.setContentType(“text/html;charset=utf-8”);//告诉浏览器和 Tomcat 使用 UTF-8 编码集
   请求:
    request.setCharacterEncoding(“UTF-8”);//只适用于 POST
    GET 和 POST 通用
    byte[] buffer = value.getBytes(“ISO-8859-1”);//”中”在 UTF-8 中字节一样
        value = new String(buffer,”UTF-8″);//中
   地址栏:地址栏有专属的编码方式
         java.net.URLDecoder;
         java.net.URLEncoder;
         URLEncoder.encode(s,enc)进行编码
         URLDecoder.decode(s, enc)进行解码
         链接提交到服务器用到GET方法,因此可以使用GET处理乱码的方式进行解码

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,488
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,903
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,736
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,488
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,127
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,289