计算机微刊轮子工厂程序猿的进阶屋

JavaWeb中文编码问题全面解析

2018-07-19  本文已影响2人  在北方玩弹子球

需要编码的原因

  1. ASCII

java中需要编码的场景

I/O操作中存在的编码

内存操作中的乱码

String s = "这是一段中文字符";
byte[] b = s.getBytes("utf-8");
String n = new String(b,"utf-8");
Charset charset = Charset.forName("utf-8");
ByteBuffer byteBuffer = charset.encode(string);
CharBuffer charBuffer = charset.decode(byteBuffer);

Java中如何编解码

image

Java Web中涉及的编解码

http://tanqingbo.com/2016/05/11/%E5%A4%8F%E4%BB%A4%E8%90%A5%E6%B1%87%E6%80%BB/

这就是为什么我们在浏览器的地址栏中能看到中文,但是把地址拷贝出来后中文就变成了一些奇怪的串了。

jdbcUrl="jdbc:mysql://localhost:3306/boke?characterEncoding=utf-8"

JS中的编码问题

  1. escape()
  1. 解码通过unescape()函数;
  2. 通过将特殊字符换成Unicode编码值可以避免因为编码的字符集的不兼容而出现的信息丢失问题,在服务端通过解码参数就可以避免乱码的问题。
                      <?xml version"1.0" encoding="UTF-8">

                      services.VelocityService.input.encoding=uft-8

                      <%@page contentType="text/html; charset=utf-8">

常见问题分析

image
String value = request.getParameter(name);

String value = new String(request.getParameter(name).getBytes("ISO-8859-1"),"GBK");


为你推荐以下文章:

谭庆波:100多本计算机类图书无套路免费送​zhuanlan.zhihu.com

图标 谭庆波:送给程序员15本经典电子书​zhuanlan.zhihu.com 图标

在我的微信公众号【轮子工厂】后台回复关键字:
1.回复【图书】:获取15本新手自学编程,零基础入门经典学习教材;
2.回复【我要造轮子】:获取100多本我根据知乎上面关于计算机问题的高赞回答里面的介绍整理出来的书籍;
3.回复【开发工具】:获取几大主流编程语言的开发工具~
4.回复【ps教程】:获取ps视频免费教程;
5.回复【早起】:每天早上7点准时叫你起床;

上一篇下一篇

猜你喜欢

热点阅读