Asp.Net页面使用UTF-8乱码解决方案

最近Asp.Net做一个项目,利用模版生文件aspx文件。模版是utf-8的,生成的文件当然也是utf-8的。但是执行起来中文全是乱码,这个问题把我折腾好几个小时。

我决方案是这样的web.config中加入

?Download download.txt
1
2
3
4
<system.web>
 <globalization requestEncoding="utf-8" 
responseEncoding="utf-8" fileEncoding="utf-8" />
</system.web>

其中的fileEncoding=”utf-8″ 是必需的,否则仍然是乱码。

将工程文件中的所有*.aspx,*.cs文件转成utf-8的。可以使用此工具:

  UltraCodingSwitch.rar (466.0 KiB, 260 hits)

批量转换。如果不使用这一步,你的原aspx代码中有中文将会乱码。因为VS2005默认生成GB2312的文件。

到此应该一切搞定了,因为asp.net默认的使用GB2312来解释生成HTML文件,已经通过上面的globalization设置过了。

但我犯一个相当低级的错误,由于我通过模板生成aspx文件的,那个保存生成文件的文件夹并未加入到工程中,所以上面的所有设置对我生成的工程文件无效。仍然使用默认GB2312来解析产生文件,所以还是乱码。知道了原因解决就容易了,将那个保存生成文件的文件夹加入工程,标准的方块字出现了,汗。

网友评论(共4条评论)

  1. 又遇编码问题之JS乱码 « Vc爱好者 V3.0

     2009年6月16日 14:10 pm

    [...] Web开发中编码问题处理不好总是很头疼,特别与Ajax纠缠在一起时,更容易出乱。前一段时间做一个Asp.net项目时遇到的编码问题。Asp.Net页面使用UTF-8乱码解决方案,今天在做PHP的一个小程序时也遇到乱码问题。 [...]


  2. lonkil

     2009年5月17日 20:17 pm

    汗。


  3. 胡乐

     2009年5月15日 16:21 pm

    楼主的精神值得我学习,我希望楼主要继续努力,多多出原创文章!
    这篇文章文笔华丽,文字幽雅,通俗易懂,天才!


  4. solu

     2009年5月5日 17:25 pm

    我刚刚开始自学ASP.NET!
    占个位做笔记!


发表评论





XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>