字符编码

linux 编码

默认utf8,文件编码格式查看


1. vim  :set encoding

2. file filename


文件编码格式转换


iconv


文件编码与系统编码不一致可能导致文件显示乱码


1. 确定文件编码


2. 确定iconv是否支持此编码的转换


3. 确定Linux/Unix操作系统编码


4. 转换文件编码为与系统编码一致


iconv -f(from) 编码 -t(to) 编码 file

python 编码

1. 文件编码设置

  # -*- coding: utf-8 -*-


2. 编码转换


  encodeA --->  unicode -----> encodeB

  unicode = encodeA.decode("utf8")

  encodeB = unicode.encode("gbk")

url 编码

1. 显示编解码

import urllib

urllib.quote()

urllib.unquote()


2. requests.get(url) 会自动对url进行encode,但是不会对 `/` 进行编码

nginx 编码

1. 配置文件设置

conf: charset utf8


2. lua编码

ngx.escape_uri(uri)

会对`/`也进行编码


ngx.encode_args(args_table)

编码方式区别

不同的编解码lib库有不同的区别

有的编码库对大部分特殊字符都进行编码,有的只对一部分进行编码

如下提供的仅仅是文章作者使用lib库的区别,同是escape,nginx则对全部字符进行编码。 encode与escape区别

自定义编码

自定义编码格式,遍历每个字符,将其转换为任意想要的格式,对于某些特殊字符,也可以增加特殊处理,如在

前面增加%等。