http协议中,url中的MBCS处理比较复杂。同时涉及到字符集编码和Escape两方面。根据http协议,url中的MBCS(多字节字符集)需要进行Escape(转义)。
但url中的中文不同,它需要向服务器进行提交。
具体地说,对于url中的ascii字符不需要Escape,而对于MBCS字符,需要在16进制字符编码的每一个字节前面加一个%。
除此之外,根据服务器所支持的字符集不同,%号后面的字节要写成对应的编码格式。
例如,一个url中包含一个MBCS字符,中文"哈"。其utf-8的编码值是两个字节: 54 C8,而GBK编码值也是两个字节:B9 FE。那么根据服务器的协议其url应分别编码为:
如果服务器支持的字符集为utf-8,对应的url编码为:http://192.168.1.1/test?content=T