最近遇到了使用Nginx 重写中文UTF8编码路径的问题. 才发现默认情况下Nginx的rewrite是不支持UTF8匹配的. 比如: rewrite ^/(..)$ /2个字符文章.html break; #用2个点可以匹配到 /ab 或 /51, 但 /汉字 是匹配不到的. 我测试了一下, 要匹配两个字的 /汉字 路径, 得用 rewrite ^/(……)$ /2个汉字文章.html break; #要用六个点 如果要让 ^/(..)$ 匹配到2个汉字字符,得开启Nginx对UTF8字符的正…
UTF-8是一种变长字节编码方式.对于某一个字符的UTF-8编码,如果只有一个字节则其最高二进制位为0:如果是 多字节,其第一个字节从最高位开始,连续的二进制位值为1的个数决定了其编码的位数,其余各字节均以10开头. UTF-8最多可用到6个字节. 如表: 1字节 0xxxxxxx 2字节 110xxxxx 10xxxxxx 3字节 1110xxxx 10xxxxxx 10xxxxxx 4字节 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 5字节 111110xx 10…
1.application/x-www-form-urlencoded 它是一种编码类型.当URL地址里包含非西欧字符的字符串时,系统会将这些字符转换成application/x-www-form-urlencoded字符串.表单里提交时也是如此,当包含非西欧字符的字符串时,系统也会将这些字符转换成application/x-www-form-urlencoded字符串,然后在服务器端自动解码.FORM元素的enctype属性指定了表单数据向服务器提交时所采用的编码类型,默认的缺省值是"appl…
参考:http://daimajishu.iteye.com/blog/959239不过具测试,也有错误:原文如下: # author: jiangyujieuse utf8;  ##在最后一个例子,这里面不能有use utf8;use Encode;use URI::Escape; $\ = "\n"; #从unicode得到utf8编码$str = '%u6536';$str =~ s/\%u([0-9a-fA-F]{4})/pack("U",hex($1))/…
0. 参考 [整理]关于http(GET或POST)请求中的url地址的编码(encode)和解码(decode) python3中的urlopen对于中文url是如何处理的? 中文URL的编码问题 1. rfc1738 2.1. The main parts of URLs A full BNF description of the URL syntax is given in Section 5. In general, URLs are written as follows: <schem…
最近在建词典,使用Trie字典树,需要把字符串分解成单个字.由于传入的字符串中可能包含中文或者英文,它们的字节数并不相同.一开始天真地认为中文就是两个字节,于是很happy地直接判断当前位置的字符的ASCII码是否处于0~127之间,如果是就提取一个字符,否则提取两个.在测试分字效果的时候,这种方法出了问题.比如我传一个"abcde一二三四五"进去,abcde可以正常分解成 a b c d e,而后面的"一二三四五"则成了乱码. 于是我开启了谷歌之旅,搜索"…
最近在建词典,使用Trie字典树,需要把字符串分解成单个字.由于传入的字符串中可能包含中文或者英文,它们的字节数并不相同.一开始天真地认为中文就是两个字节,于是很happy地直接判断当前位置的字符的ASCII码是否处于0~127之间,如果是就提取一个字符,否则提取两个.在测试分字效果的时候,这种方法出了问题.比如我传一个“abcde一二三四五”进去,abcde可以正常分解成 a b c d e,而后面的“一二三四五”则成了乱码. 于是我开启了谷歌之旅,搜索“如何在C++中将string中的中文分…
上次谈到过Nginx和中文URL的问题,这几天又加深了认识. 多分享几个关于Nginx Rewrite的经验. Nginx匹配指定中文URL的方法:rewrite "(*UTF8)^x{66f4}x{6539}$" /index.html last;这个会将 http://www.cslog.cn/%E6%9B%B4%E6%94%B9 重定向到http://www.cslog.cn/index.html.‘/%E6%9B%B4%E6%94%B9′是中文URL ‘/更改’, x{66f4…
如两个URL字符串: &q=%E8%A3%99%E5%AD%90&style=grid&seller_type=taobao &q=%CE%D0%C2%D6%D4%F6%D1%B9&style=list&s=44; 上面有uft-8编码,下面的用gb2312编码,但是怎么自动识别呢? 参考csdn论坛讨论,解决方法有两种: 不管它是utf-8,还是 gbk, 还是.... 先按 iso-8859-1 解码 然后用正则 匹配一下看是否全文符合 utf-8 规则…
Nginx 使用中文URL,中文目录路径 分类: linux2012-05-03 11:04 2672人阅读 评论(0) 收藏 举报 nginxurl服务器translationcentosserver [root@Tserver ~]# env|grep LANG LANG=en_US.UTF-8 二:NGINX配置文件里默认编码设置为utf-8 server{ listen 80; server_name .inginx.com ; index index.html index.htm in…