学习记录-编码格式

总结学习–编码格式

编码 简要知识
ascII 1.标准ascii 0-127(十进制)和十六进制,可表示字母及特殊符号 2.扩展ascii 后128位数,表示特殊外语字符符号
gbk 1.国人专属,记录中文 2.用双字节的方式记录汉字
unicode 1.解决所有国家编码通信 2.一套字符集,世界编码字典
utf-8 1.记录使用1-4个字节,汉字占三个字节 2.万国码,都可以表示
url 1.接受ASCII编码规定中的一部分字符,对中文字符进行编码(utf-8,gbk多种因素影响) 2.百分号编码,使用%加上两位的字符代表一个字节的十六进制形式

转换方式:gbk----->unicode------>utf-8
utf-8----->unicode----->gbk

当使用get方式提交时,各浏览器对中文的编码方式不一样,可能是utf8,也可能是gb2312,这是由不同浏览器决定的,程序员没法用代码控制;
当使用post方式提交时,url编码方式会按照html头部的设定的字符集进行编码,所以post方式提交时,编码处理就很简单了;

对程序员来说,处理get提交的编码问题是url的重点,有三种方法:
1.对于带有中文内容的表单提交,尽可能采用post的提交方式
2.对于网页中的链接url避免使用中文和不必要的特殊字符,这样就不需要进行url编码
3.方法三是当要用到get方式时,使用这几个js函数escape();encodeURI() ;encodeURIComponent()对参数进行编码,这几个函数式采用utf8的方式进行编码

注意:js传递数据都是使用utf-8编码,所以使用ajax的get,post时都是使用utf8编码,所以不需要再做过多处理了;服务器端解析url,如果参数编码不是网站设置的编码,那就使用php的函数iconv()对其转码;gb2312是双字节,可以顺利转为utf-8,但是utf-8是可变长字节,有时可能是3或4个字节,因此转为gb2312时,可能会丢失一些字节,因此建议使用utf8作为网站编码可能会更好

猜你喜欢

转载自blog.csdn.net/SmileAndFun/article/details/107686672