终于知道ASP乱码的原因
作者:edwin 日期:2007-04-22
个别ASP页面不会乱码,而有的却会,查来查去都找不到原因,真的很痛苦。
后来在Google上搜索到一篇文章(http://www.cloudward.net/techlife/default.asp?date=2006-2-26)虽然前面的很多英文都没看,其实也看不懂,但是凭着感觉看他最后的总结,终于发现乱码的原因其实跟Codepage的定义有关,比如UTF-8的对应的Codepage就是65001,而简体中文zh-CN的就是936。
知道原因后再检查出现乱码的文件,原来我根本没在ASP的首行定义LANGUAGE和 CODEPAGE。
2008-12-22:由于感到之前发表的内容过于肤浅,为帮助更多有需要的朋友,现补充如下:
其实ASP乱码的原因除了上面提及的,还有最主要的原因是由CODEPAGE值、网页META的charset定义值和文件编码三者不一致所造成的。
CODEPAGE值:在ASP的第一行定义,上面已有说明。
META的charset值:HTML页头部分的META,charset值常用的是gb2312和utf-8
文件编码:就是文件本身的编码。用记事本打开ASP文件然后另存为,在弹出的窗口里就可以看到这个选项。这部分是最容易出错的地方,尤其是更换编码的时候,这部分往往会被忽略,如果不改成一致的编码值,就会造成乱码。