最近Asp.Net做一个项目,利用模版生文件aspx文件。模版是utf-8的,生成的文件当然也是utf-8的。但是执行起来中文全是乱码,这个问题把我折腾好几个小时。
我决方案是这样的web.config中加入
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, 308 hits)
批量转换。如果不使用这一步,你的原aspx代码中有中文将会乱码。因为VS2005默认生成GB2312的文件。
到此应该一切搞定了,因为asp.net默认的使用GB2312来解释生成HTML文件,已经通过上面的globalization设置过了。
但我犯一个相当低级的错误,由于我通过模板生成aspx文件的,那个保存生成文件的文件夹并未加入到工程中,所以上面的所有设置对我生成的工程文件无效。仍然使用默认GB2312来解析产生文件,所以还是乱码。知道了原因解决就容易了,将那个保存生成文件的文件夹加入工程,标准的方块字出现了,汗。