静态gb2312编码,项目传值中文乱码的问题解决
来源:互联网 发布:诛仙单机如何修改数据 编辑:程序博客网 时间:2024/05/22 15:06
可能标题描述的不是特别清楚
当时的问题是这样的:在我的系统项目中,参考的美工静态页面是gb2312格式的,当此编码拿到项目中后,utf-8编码的系统,加载页面时,会出现样式问题,比如不能正常居中等。(IE6通常有样式问题)
解决办法如下,(如果必须采用gb2312编码的话)
在webconfig的<system.web>中增加
<globalization requestEncoding="gb2312" responseEncoding="gb2312" uiCulture="zh-CN" culture="zh-CN" fileEncoding="gb2312"/>
此时,页面效果正常。
但是,如果这个时候遇到有页面传值中文的功能时,传值的中文会乱码。即使在js中用了encodeURIComponent也不能解决
此时,在项目中增加如下类,用于专门处理request传值转回utf-8格式。
namespace XXX
{
//用于处理IE6下UTF-8得不到样式的问题:将web的编码改为gb2312,request传值通过本方法转回utf-8
public class ContentEncodingModule : IHttpModule
{
public void Init(HttpApplication app)
{
app.BeginRequest += new EventHandler(app_BeginRequest);
}
public void Dispose()
{
}
void app_BeginRequest(object sender, EventArgs e)
{
HttpApplication app = (HttpApplication)sender;
HttpWorkerRequest request = (((IServiceProvider)app.Context)
.GetService(typeof(HttpWorkerRequest)) as HttpWorkerRequest);
app.Request.ContentEncoding = System.Text.Encoding.UTF8;
}
}
}
并在webconfig中引用此类
<httpModules>
<add name="ContentEncodingModule" type="XXX.ContentEncodingModule,XXX"/>
</httpModules>
问题解决。
但根据参考文章说,尽量还是不要将静态页用gb2312编码,除非有特殊用途。
解决问题时,参考的很重要的一个网址如下:
http://www.cnblogs.com/fish-li/archive/2012/10/14/2723631.html
- 静态gb2312编码,项目传值中文乱码的问题解决
- zend studio 中文编码GB2312的乱码解决方法
- python获取html编码GB2312中文乱码的问题
- 使CentOS6.5中文本编辑器支持GB18030/GBK/GB2312 等类型的中文编码,解决中文显示乱码问题
- jQuery.ajax提交GB2312或GBK编码中文乱码问题
- xajax0.5中文乱码解决 服务器编码为gb2312时
- C+++Utf8字符转换Gb2312编码,解决TinyXml中文乱码
- Sublime Text 2 不支持GB2312和GBK编码/中文乱码
- 框架编码为gb2312的项目在传递参数中文无法提交的问题
- url 传值中文乱码问题解决
- Jsp链接传值中文乱码问题解决
- GBK编码的项目AJAX中文乱码问题
- JFreeChart的中文乱码问题解决。
- MyEclipse2014的中文乱码问题解决
- PHP中文乱码的问题解决
- ZendStudio导入项目中文注释乱码问题解决
- JAVA WEB项目中文乱码问题解决方案
- tomcat项目中文乱码问题解决方法
- 改变Android ProgressBar样式颜色
- 荐10款来自极客标签的超棒前端特效[第七期]
- My Reading List
- iOS7新特征汇总[03]新特征介绍3
- 自定义消息如何手动添加消息映射?
- 静态gb2312编码,项目传值中文乱码的问题解决
- 在Matlab中调用C/C++程序<一>
- 跳转语句
- MAX Reactor之 Fracture 破碎器
- 手动添加消息响应
- oracle数据库blob类型转换为varchar2
- jQuery+JSON+jPlayer实现QQ空间音乐查询
- 如何在代码中判断当前设备是iPhone 4/4S还是iPhone 5?
- 浏览器插件之ActiveX开发(一)