码迷,mamicode.com
首页 > 其他好文 > 详细

字符编码这个事儿

时间:2018-06-08 17:22:34      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:--   避免   数据库   bsp   通过   格式   外部   计算   计算机   

计算机中的编码和解码

  计算中信息的表示是通过二进制01字节流。编码方式即为不同的二进制通过转换所表示出来的特定信息(不同的编码方式均有特定的规则)

  符号集:ASCII只可表示128个符号。其他的文字符号ASCII无法表示。Unicode为其中一种字符集,该字符集包含了世界上所有的符号。

  Unicode规定了符号的二进制格式,但是没有固定编码格式(二进制格式如何存储)。于是UTF-8,UTF-32等等编码方式都是具体Unciode符号的存储方式。

  乱码的根因形成:编码和解码方式的不同,且编码和解码使用的字符集不同。

Java中的字符编码

  内码:程序内部使用的字符编码。Java字符的内码均为UTF-16(Unicode)编码。java文件编译形成class文件(编码)----JVM加载class文件(解码)。

  外码:程序与外部(文件、数据库、网络等)交互使用的字符编码。

  内码与外码的转换。外码---(解码)---Unicode码(内部使用统一的Unicode码,避免乱码); String.getBytes()(内码---(先解内码,再使用默认或者指定方式编码)--外码); new String(bytes[] array, charset) 解外码方式。

以HttpRequest的编码和解码为例(HttpParser类)

  头参数(URL编码:URL不允许使用特定出了英文符号之外的字符,故需要进行编码%。不同的浏览器或客户端可能采用不同的编码方式。)  含有其他字符可以指定编码方式。一般默认解码都是ISO-8859-1 

  请求体(Content-Type指定了编码格式)

 

字符编码这个事儿

标签:--   避免   数据库   bsp   通过   格式   外部   计算   计算机   

原文地址:https://www.cnblogs.com/lovelywxd/p/9149337.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!