编码/转换

* 编码

https://blog.csdn.net/u012252959/article/details/49025225

1. 种类

  发明:美国等国家发明,标准码 iso-8859-1,编码单单字节编码,支持欧洲语言

  演变:机器不认识中文,国际码 gbk 简称  gb2312  【GBK汉子国标扩展码,采用gb2312的所有汉字及编码还涵盖了Unicode中的汉字】

  后来:阿拉伯语、日语、韩语等,统一编码UniCode

2. URL和URI

  URL 统一资源定位符,地址栏中就是url,如 http://www.baidu.com/question/01.html

  URI  统一资源标识符,从虚拟路径开始, 如 /question/01.html

  问题: [字母:a-z A-Z , 数字:0-9, 特殊符号:,$-_.+!*‘()  ] 不用进行编码可直接用于url。 意味着url不能直接使用中文,http://www.aβγ.com 等,那么RFC 1738没有规定具体的编码方法,而是直接交给应用程序(浏览器)

         自己解决,这样就导致了“url乱码”

  结论: 网址路径包含汉字 (http://zh.wikipedia.org/wiki/春节):采用 utf-8 编码 ,变为 http://zh.wikipedia.org/wiki/%E6%98%A5%E8%8A%82

      查询字符串中包含汉字 (http://www.baidu.com/s?wd=春节): 采用操作系统默认编码

      get/post请求:由网页的编码决定<meta http-equiv="Content-Type" content="text/html;charset=xxxx">

      

  解决方法:先对url编码,提交服务器。

3.编码解码

3.1 escape()编码

     被编码后都变为unicode字符

     在/u0000 ~ /u00ff直接转换,escape()不对【+】进行编码(因为空格被转换为+字符), 解码unescape()  ,比较古老

javascript: escape("春节"); //"%u6625%u8282"

3.2 encodeURI()

  - js中真正对url编码的函数。

  - 对整个url编码,不对【; / ? : @ & = + $ , #】编码。

  - 编码后输出符号为 utf-8 形式,并且每个字节前面加了%

javascript: encodeURI("春节"); //"%E6%98%A5%E8%8A%82"
decodeURI("%E6%98%A5%E8%8A%82");

3.3  encodeURIComponent()

  - 对url的组成部分编码,不是整个url

  - encodeURI()不对【; / ? : @ & = + $ , #】编码,但是在encodeURIComponent() 中都会被编码

  - 解码 decodeURIComponent()

encodeURIComponent("[email protected]");//"mail%40example.com"
encodeURI("[email protected]"); //"[email protected]"
decodeURIComponent("mail%40example.com"); //"[email protected]"

4. ASCLL码

原文地址:https://www.cnblogs.com/SmileSunday/p/9412984.html

时间: 2024-11-17 22:14:34

编码/转换的相关文章

关于raw_input输入中文时的编码转换

今日在敲代码时出现了如下问题 中文的编码出现了问题(在键盘输入中文时也会出现同样的问题),中文的编码应该是utf-8编码格式,有以下两种方式来进行编码转换: (1)decode用法:str  -> decode('the_coding_of_str') -> unicode 即写为格式:raw_input('净利润为:'.decode('utf-8').encode('gbk')) (2)encode用法:unicode -> encode('the_coding_you_want')

Linux下查看文件编码,文件编码格式转换和文件名编码转换

linux相关   2008-10-07 10:46   阅读1392   评论0   字号: 大大  中中  小小  如果你需要在Linux中 操作windows下的文件,那么你可能会经常遇到文件编码转换的问题.Windows中默认的文件格式是GBK(gb2312),而Linux一般都是 UTF-8.下面介绍一下,在Linux中如何查看文件的编码及如何进行对文件进行编码转换. 查看文件编码 在Linux中查看文件编码可以通过以下几种方式: 1.在Vim中可以直接查看文件编码 :set file

关于JS的编码转换问题

在进行JS开发过程中,尤其是在开发报表时,报表已集成到Web页面中,通过在页面传递参数至报表中时,会发现有时某些参数值,传递到报表中是显示为问号或乱码等等一系列不能正常显示的情况. 这是由于浏览器和报表服务器的编码不同,字符多次进行编码转换时出现错误导致字符的显示出现乱码,尤其是中日韩文和特殊字符更容易出现乱码问题. 以开发报表软件FineReport为例,在给报表服务器发送请求之前,对URL或者只对URL里面的参数名字和参数值,进行cjkEncode的编码,该方式兼容了各种不同的字符集,如IS

Nim-字符串编码转换

Nim中对字符串进行转码需要用到encodings模块. encodings模块: proc getCurrentEncoding():string {.raises: [],tags: [].} #检索当前系统编码,在UNIX上,总是返回"UTF-8". proc open(destEncoding = "UTF-8"; srcEncoding = "CP1252"): EncodingConverter {. raises: [Overflo

gbk转utf-8 iconv 编码转换

linux下面有时候 字符需要进行编码转换(爬虫将gbk转为utf-8编码...),一般可以选择iconv函数. 终端下面  输入 man 3 iconv 得到  iconv函数的使用方法. 个人看习惯了,msdn文档之后感觉linux下面的文档的看的不是那么爽了. 使用iconv函数进行转码,一般使用三个函数:iconv_open  . iconv  .iconv_close三个函数. iconv_t iconv_open(const char* tocode,const char* from

Windows下字符编码转换

有时候经常使用别人用Tabhost+其它的实现demo.单纯利用Tabhost该如何使用呢? 下面看例子: public class MainActivity extends TabActivity { public TabHost tabHost; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 获取对象 tabHost = getTabH

〖Python〗-- 编码转换

[字符编码与转码] 为什么要进行编码和转码 由于每个国家电脑的字符编码格式不统一(列中国:GBK),同一款软件放到不同国家的电脑上会出现乱码的情况,出现这种情况如何解决呢?! 当然由于所有国家的电脑都支持Unicode万国码,那么我们可以把Unicode为跳板,先把字符编码转换为Unicode,在把Unicode转换为另一个国家的字符编码(例韩国),则不会出现乱码的情况.当然这里只是转编码集并不是翻译成韩文不要弄混了. Python3.0进行编码转换 # __author__:"ShengXin

golang编码转换

在网上搜索golang编码转化时,我们经常看到的文章是使用下面一些第三方库: https://github.com/djimenez/iconv-go https://github.com/qiniu/iconv 如果我们在windows下使用这个库,会看到错误: iconv.go:6:20: fatal error: iconv.h: No such file or directory compilation terminated. 这是因为需要系统有 iconv.h 文件. linux.ma

Linux查看文件编码格式及文件编码转换

Linux查看文件编码格式及文件编码转换 如果你需要在Linux 中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题.Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8.下面介绍一下,在Linux中如何查看文件的编码及如何进行对文件进行编码转换. 查看文件编码在Linux中查看文件编码可以通过以下几种方式:1.在Vim 中可以直接查看文件编码 Shell代码 :set fileencoding 即可显示文件编码格式.如果你只是想查看其它编码格

[C语言]unicode与utf-8编码转换(一)

Unicode与UTF-8编码转换(一) Unicode是一个符号集合,规定了符号的二进制代码,而UTF-8是Unicode的一种实现,具体Unicode和UTF-8的联系如下所示:         Unicode符号范围                    UTF-8编码规则  1 | 0000 0000 - 0000 007F |                                              0xxxxxxx    2 | 0000 0080 - 0000 07