生活的天平本不平衡,只有通过努力改变其偏向。

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

2009-04-23

最近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, 766 hits)

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

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

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

作者:lonkil | 分类目录:编程开发 | 标签:

4 条评论

  1. 胡乐 说道:

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

  2. solu 说道:

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

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>