文章分类

标签导航

GB2312与UTF-8页面传递中文字符乱码的解决方案

发布时间:2013-07-04 08:29:24 访问次数:7386 【关闭此页】

  在程序设计过程中,经常遇到不同编码页面间参数互相传递、以及读取不同编码数据库导致中文字符乱码的问题。在网上看到很多文章都是贴出一大串代码来转换接收到的字符,效率问题先放一边,单就成功率来说,就非常低。我一次也没试成功过。所以今天把我的方法贴出来与大家分享。

  只写一例UTF-8页面提交表单到GB2312页面,大家可以举一反三。转换方法非常简单,请看代码:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
option explicit
response.buffer=true
session.codePage=65001
response.charset="utf-8"
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<form action="2.asp" method="post"><input name="k" type="text" /><input name="" type="submit" /></form>
</body>
</html>
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%><%
option explicit
response.buffer=true
session.codePage=936
response.charset="gb2312"
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
<%
session.codePage=65001
dim k
k=request.form("k")
session.codePage=936
response.write(k)
%>
</body>
</html>

  综上,只要把接收页面的页面编码类型(session.codepage)临时更改为接收字符串的编码类型,然后把接收到的字符串赋值给变量,再把编码类型转回来,程序就会自动将字段转换成对应的编码类型。

  对于数据库操作,方法相同,只需要把编码环境临时转换即可。

本文标签:网页设计ASP
首 页|关于我们|网站建设|域名服务|虚拟主机|百度优化|成功案例|资讯中心|联系方式