@如果网站的内部编码是gbk,那么url中中文字符串就必须为gbk编码,如果传输的url中文字符串为utf8编码,就会产生乱码问题,具体传输的编码类型,可以在浏览器的开发工具中检测到,例如Chrome,查看network中的请求头,然后查看view source就能看到传输的编码了。对比,就能看出是什么编码了。
---点击view source后效果
---asp.net中处理中文字符串编码的方法:System.Web.HttpUtility.UrlEncode(url) //这里会将中文字符串转换为网页默认的编码,例如网页是gbk编码,这里就会编码为gbk编码。当然也可以指定编码System.Web.HttpUtility.UrlEncode("爱清",Encoding.UTF8),这里指定为utf8编码。
@总结:System.Web.HttpUtility.UrlEncode(“url”)这种方法虽然能将中文字符串转换为网页的默认编码,或者转换为指定的编码,但是如果遇到一个页面是utf8编码,另一个页面是gbk编码的情况,就会改的头疼,一不小心,就会出问题。
---终极处理方法,就是用unicode编码,用System.Web.HttpUtility.UrlEncodeUnicode(url)将中文字符串处理为unicode编码,就不会出现上边的困扰和问题了。