asp通过参数向sqlserver插入中文时出现乱码
Case "InsertCustomQuestion"
qQuestion = request("qQuestion")
strSql = "insert into t_Question(qQuestion) values ('" & qQuestion & "')"
conn.Execute (strSql)
Response.Write "OK"
qQuestion 字段是nvarchar类型,表、库排序都是Chinese_PRC_CI_AS,传值给qQuestion,只要是中文的,到了sql server里就是乱码,如“璐ф灦琚竻绌轰簡”,但是如果写成strSql = "insert into t_Question(qQuestion) values ('"中文"')",就正常。用C#的WinForm直接插入中文,也正常,就是用asp用参数写中文的时候会乱码。
------解决方案-------------------- 可以尝试修改网页的编码格式,Response.Charset="gb2312",
或者你也可以去网页的meta 那里看看 编码格式是不是UTF-8 ,看情况 应该是传入的值存入变量时出了问题
------解决方案-------------------- 检查文件的 格式 是 UTF-8 还是GBK 的
提交文件的 编码 和 提交后接收数据的 编码要一样, 用记事本打开 另存 最下面的编码选择 ANSI
------解决方案-------------------- 乱码都是编码不统一造成的
记得要检查以下几个方面的编码是否统一:
一、服务端的编码声明,就是类似 <%@ CODEPAGE=936 %>这样的
二、客户端的编码声明,类似<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />这样的
三、文件属性的编码声明,用记事本的话,就另存为时选择编码,如果使用DW的话,就修改文档属性那里修改编码
四、数据库的编码
------解决方案-------------------- 引用: Quote: 引用:
检查文件的 格式 是 UTF-8 还是GBK 的
提交文件的 编码 和 提交后接收数据的 编码要一样, 用记事本打开 另存 最下面的编码选择 ANSI
这样操作后,还是乱码,Response.Write request("qQuestion") 出来就是乱码,奇怪。
加了meta指定utf-8编码,你的asp文件也要存储为utf-8编码的
------解决方案-------------------- 三码合一,一数据库编码,二文件保存时编码,三ASP文件编码,三码合一就不会乱码了。
另外上面的服务端和客户端的编码是不统一的,65001对应utf-8,936对应gb2312,<%@ codepage=65001%>UTF-8 <%@ codepage=936%>简体中文 。
根据你的情况,建议全部改成gb2312。即
ASP文件使用<%@ codepage=936%>和<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />然后用记事本保存该文件,类型为ANSI
------解决方案-------------------- 直接发源码过来看吧 275101203//qq
这样说也说不清楚
------解决方案-------------------- Function UrlDecode_GBToUtf8(ByVal str)
Dim B,ub ''中文字的Unicode码(2字节)
Dim UtfB ''Utf-8单个字节
Dim UtfB1, UtfB2, UtfB3 ''Utf-8码的三个字节
Dim i, n, s
n=0
ub=0
For i = 1 To Len(str)
B=Mid(str, i, 1)
Select Case B
Case "+"
s=s & " "
Case "%"
ub=Mid(str, i + 1, 2)
UtfB = CInt("&H" & ub)
If UtfB<128 Then