Server.URLEncode 编码是怎么决定的?

作者:vkvi 来源:ITPOW(原创) 日期:2009-7-31

其实 Server.URLEncode 编码并不是由网页的编码决定的,而是由其参数的编码决定的。

情况一

网页编码是 UTF-8,Server.URLEncode("静态文字"),此时输出“静态文字”的 UTF-8 编码 %E9%9D%99%E6%80%81%E6%96%87%E5%AD%97。因为网页是 UTF-8 的,“静态文字”这几个字就是 UTF-8 的,所以 Server.URLEncode 也是按 UTF-8 来编码的。

情况二

网页编码是 UTF-8,Server.URLEncode(rs("content")),内容是通过 RecordSet 从 SQL Server 数据库中的 content 字段读取的,虽然数据库中是使用 Unicode 编码来存的,但由于 IIS 去读的时候,会使用默认的转换,即 Unicode 到 ANSI(gb2312)。所以 rs("content") 是 ANSI(gb2312)的,所以 Server.URLEncode 是按 ANSI(gb2312)编码的,而不是按 UTF-8。

注意,上述情况也有例外:某些 Web 服务器、数据库管理系统从数据库中读出来仍是 UTF-8。

怎么让 RecordSet 从数据库中读取出来的内容为 UTF-8 格式呢?请参见 ASP codepage 使用小解

相关文章