最近做项目,出现了一个中文乱码的问题,就是本地开发是写在网页上的中文,本机运行看着没问题,发布在服务器上,访问的时候是乱码。非常奇怪的是,我的操作系统是英文的,服务器也是英文环境,为什么我本机能显示中文,而服务器不行呢?按以前的经验,上网找一段代码放到程序里试一下,结果怎么也解决不了,还是乱码。最后请教我们这的一个高手,终于解决了,并且对编码方式也有了一个认识。
其实我的的机器和服务器是有区别的,我的‘Regional and Language Options/Regional Options/Standards and formats’选择的是‘Chinese(PRC)’,而服务器上的的是’Enlish(United States)’,至于为什么这种区别会导致中文乱码,说起来就复杂了。
目前最常用的编码方式有两种,GB2312和UTF-8。GB2312是大家常用的中文操作系统的编码方式,而UTF-8是国际上通用的编码方式。(简单地说,具体定义google)我机器上安装的VS2008采用Regional设置里面默认的编码方式,在创建aspx页面时默认使用的是GB2312。但是发布到服务器以后,因为服务器设置的为UTF-8的编码方式,所以不认识GB2312,显示出来的是乱码。问题的原因找到了,下面就该解决了。
解决方法,就是将aspx文件保存为UTF-8的编码方式。具体方法就是,单击’File/Save **.aspx as’,再出现的保存路径选择窗口,有个‘Save’button,’Save‘button旁边有个下来三角’Save with Encoding‘,选择’Unicode(UTF-8 with signature) – Codepage 65001’,然后保存,将此发布到服务器上,再看一下,好了,能显示中文了。