静态gb2312编码在项目传值出现中文乱码现象

可能标题描述的不是特别清楚
当时的问题是这样的:在我的系统项目中,参考的美工静态页面是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编码,除非有特殊用途。

(0)

相关推荐

  • UTF8转成GB2312乱码问题解决方案

    最近做了一个小项目,遇到此类问题,记录一下,也算是一个总结. 此项目分为两部分,一个是新闻数据采集,一个是采集信息的审核,最后生成XML文件. 数据采集后的数据经过用户编辑完之后,要导出一个ACCESS文件,然后把这个文件导入到信息审核系统.在ACCESS库中存储新闻信息的字段类型是ntext类型,而审核系统库中对应的是varchar(max)类型的字段,导入之后,发现有的空白字符会出现乱码,表现为问号(?),其实经过后面的测试,这不是空白(空格)字符,而一个特殊字符,怎么办?经过几番测试后发现

  • 解决Jquery load()加载GB2312页面时出现乱码的两种方案

    问题描述:jquery的字符集是utf-8,load方法加载完GB2312编码静态页面后,出现中文乱码. a.php 复制代码 代码如下: <script language="javascript" type="text/javascript"> $(function(){ $("#zz").click(function(){ $("#job").load("b.php"); }) }) <

  • Utf-8和Gb2312乱码问题的终结

    研究好多天了,也试过好多办法了,总结出目前发现最好的方法: 先说一下基本的东西: <%@ codepage=65001%>UTF-8 <%@ codepage=936%>简体中文 <%@ codepage=950%>繁体中文 <%@ codepage=437 %>美国/加拿大英语 <%@ codepage=932 %>日文 <%@ codepage=949 %>韩文 <%@ codepage=866 %>俄文 codepa

  • 静态gb2312编码在项目传值出现中文乱码现象

    可能标题描述的不是特别清楚 当时的问题是这样的:在我的系统项目中,参考的美工静态页面是gb2312格式的,当此编码拿到项目中后,utf-8编码的系统,加载页面时,会出现样式问题,比如不能正常居中等.(IE6通常有样式问题) 解决办法如下,(如果必须采用gb2312编码的话) 在webconfig的<system.web>中增加 复制代码 代码如下: <globalization requestEncoding="gb2312" responseEncoding=&qu

  • Java Web项目中解决中文乱码方法总结(三种最新方法)

    目录 前言 问题背景 下面我说三种方法供大家参考 方法一: 方法二: 第三种方法: Tomcat结构与介绍 bin conf lib logs temp webapps work 前言 JavaEE(Java Enterprise Edition),Java企业版,是一个用于企业级web开发平台.最早由Sun公司定制并发布,后由Oracle负责维护.JavaEE平台规范了在开发企业级web应用中的技术标准.在JavaEE平台共包含了13个技术规范(随着JavaEE版本的变化所包含的技术点的数量会

  • springMVC向Controller传值出现中文乱码的解决方案

    这个问题都是老生常谈了,可还是有很多人掉进去. 这是一个很简单的问题,只要理清思路就好了. 明确一点: 项目是放到容器内(tomcat是一个)内的.无论我们前端请求还是后端相应.我们都是围绕着http报文操作的. tomcat将http报文封装为request,response对象方便我们操作. 反过来说,request,response都经手了tomcat. 所以,我们需要将tomcat配置好就好了. tomcat解决中文乱码的问题,网上有很多. 不管是这个框架还是那个框架向后台传值乱码怎样怎

  • JS解决url传值出现中文乱码的另类办法

    在开发web应用时,很多情况都需要进行前后台的数据交互,有时候我们可能需要把前台的中文数据通过URL的方式传递到后台,但此时有个令人头疼的问题,因为Java中网络传输使用的标准字符集是ISO-8859-1,所以在后台用request.getParameter("message");获取前台传过来的中文时,得到的还是ISO-8859-1字符集,中文就会出现乱码现象,好多人的解决办法是在前台传递中文之前进行decode,后台再decode一下进行转换,这样感觉很是麻烦,难道就没其他的方式解

  • python中Pycharm 输出中文或打印中文乱码现象的解决办法

    1. 确保文件开头加上以下代码: # -*- coding:utf-8 -*- 还可以加上 import sys reload(sys) sys.setdefaultencoding('utf-8') 确保以下. 如果还是没有解决中文乱码,那么进行方法2. 2. 进入setting 单击打开,单击 修改完成后,结果如下 单击"ok". 成功. 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.

  • MySQL字符集 GBK、GB2312、UTF8区别 解决MYSQL中文乱码问题

    MySQL中涉及的几个字符集 character-set-server/default-character-set:服务器字符集,默认情况下所采用的. character-set-database:数据库字符集. character-set-table:数据库表字符集. 优先级依次增加.所以一般情况下只需要设置character-set-server,而在创建数据库和表时不特别指定字符集,这样统一采用character-set-server字符集. character-set-client:客户

  • url 编码 js url传参中文乱码解决方案

    1.配置文件web.config中 在节中加上整个网站的编码方式. <globalization fileEncoding="GB2312" requestEncoding="GB2312" responseEncoding="GB2312"/> 这样参数就以gb2312的中文编码方式传输了.而一般默认是utf-8. 2.在传参是先编码在传输,接受时先编码,在接收. string mm=Server.URLEncode(你); Res

  • 运行vbs脚本报错无效字符、中文乱码的解决方法(编码问题)

    代码没有问题,总是报这样的错误. 测试代码 msgbox "我们" 很简单的代码,但如果编码不对问题就很多 中文乱码问题 运行图 因为使用了utf8编码导致,因为我先用的记事本编写的 无效字符 --------------------------- Windows Script Host --------------------------- 脚本: C:\Users\Administrator\Desktop\softjc\1.vbs 行: 1 字符: 1 错误: 无效字符 代码: 

  • mysql 中文乱码 解决方法集锦

    第一个方法: MySQL 4.1 中文乱码的问题 最近要将 MySQL 4.0 升级到 MySQL 4.1 ,发现了中文乱码的问题,希望以下见解对大家有用. 1. MySQL 4.1 在文字上有很大改进,它有了 Character Set 与 Collation 的慨念. 2. 在 MySQL 4.0 ,一般的程式都会将文字以拉丁文 ( latin) 来储存,就算我们输入中文字,结果仍是放在以拉丁文设置的文字栏里头,这对 MySQL 4.0 与以 MySQL 4.0 为基楚的程式来说,并不会有问

  • 解决ajax+php中文乱码的方法详解

    中文如果用表单提交的话,不会出现乱码,而用ajax提交就会出现乱码,这是什么原因呢? 我的理解是,我在写源码的时候,一般用记事本写,保存的时候默认用ANSI编码,源码中也没有用"<meta http-equiv=Content-Type content=text/html;charset=UTF-8>"或"header('Content-Type:text/html;charset=UTF-8');"指定网页编码,于是在浏览器中显示时它的编码被认定为&q

随机推荐