注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

php开发lamp

《西安--木木》-经历丰富了生活。 架构师QQ群: 246695517

 
 
 

日志

 
 

utf-8从此解决所有编程中的乱码处理  

2013-06-26 18:21:40|  分类: php基础 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

/*
计算机里,只有010101
而人的世界里,有文字,声音,图片,视频...

01==>与文字对应


人为的约定
65->A
66->B
...
...

0100 0001 代表:A还是65 要看规则

2进制编码 到 字符的映射,就是字符集。

A-Z
a-z
+_*&^%$#@!

不超过127个.

美国人造计算,就考虑到自己使用,能表示127 个字符就行

一个字节就够存储127 个字符

1111 1111
0000 0000  256种值
1个字节8个位,就足够了.
事实上,7个位就够了,7个位表示128中变化

ASCII
0-127 来表示的
0xxx xxxx ,最高位始终是0

*/


/*
中国
常用汉字3000多,生僻汉字不用说.

1个字节,够不够?
答:不够,最多不过256种。

 

思考:用2个字节来表示
1111 1111 1111 1111
0000 0000 0000 0000
0->65535,6万多种组合,够用了


GB2312 字符集

GBK
GBK还是双字节,如何扩充容量
答:
GBK的第2位,低位,不在局限于129-255,小于127的也能用

140 35 65 179 82
问:几个中文,几个英文?
总结:碰到>128的,就在往后找一个字节,2个字节理解成中文。

找到大于128的,就带一个字节==》合起来表示一个字符
小于128的就是一个字节==》表示一个字符

 

日本使用JIS字符集


世界各国字符集,兼容问题
国际通用码表:unicode
unicode 用4个字节,来编号
2^32 ,40多亿,足够用了

但我们常用的,集中在65535个标号里.
2个字节就足够用了。

但是,unicode只负责编号用的,而且都用4个字节来分配编号。

你负责编号,
我负责在不改变你编号的基础上,简化字节。

0000 0000 0000 0000 0000 0000 0000 0041 ->A

0000 0041 ->A
把高位浪费的0值,用一定的规则舍弃。


形成的编码方式,
unicode 与utf-8的关系
就像源文件 与压缩文件的关系

问:给定unicode字符 能不能推出utf-82进制值?
答:当然能,互相推出。编码与解码的关系


unicode 和utf-8 转换关系表
4个字节 ---> 1个到6个字节  不固定用几个字节,关键看对应 的规则              

utf-8占几个字节呢?
答:1个到6个字节  不固定用几个字节。


utf-8变长,如何确定字符的边界呢?

最高位
0xxxxxxx
11xxxxxx xxxxxxxx
111Xxxxx xxxxxxxx xxxxxxxx
1111xxxx xxxxxxxx xxxxxxxx xxxxxxxx
11111xxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
111111xx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx

最多用到6个字节

如何截取utf-8编码时无乱码?
答:
1:从头开始取一个字节,
通过位运算,计算连续1的个数

如为0,则截取1个字节
如为11,则截取2个字节
如为111,则截取3个字节
...
...
如为111111,则截取6个字节

 

从容量上来看?
GB2312 < GBK < UTF-8

问:GBK中文在java中,被转为utf-8 ,怎么转的?
答:GBK 和unicode有对应关系
通过中间unicode码表转的
GBK -> unicode ->UTF-8

  评论这张
 
阅读(138)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017