ASP读取数据库 UTF8编码
我最近做一个项目需要用ASP页向前台的解析器(程序)输出数据库中的数据前台只能解析Unicode(UTF-8)编码的application/x-www-form-urle...
我最近做一个项目需要用ASP页向前台的解析器(程序)输出数据库中的数据 前台只能解析Unicode(UTF-8)编码的
application/x-www-form-urlencoded格式的数据
数据中会出现汉字的我的ASP页文件已经用UTF-8格式保存
CODEPAGE属性也改成了65001
现在的问题是:
例如
Response.Write("Text=汉字&UserID=0001&UserName=用户1")
像这样输出的结果会被正常解析
而
Response.Write("Text=汉字&UserID=0001&UserName=" & rs("username"))
像这样的不会被解析也就是说数据库调出来的那一部分不是以UTF-8格式编码的
而是数据原来的格式 用什么方法改数据库(是Access数据库,数据是不能改的)
或者把从数据库调出来的字符串转成UTF-8格式呢 有过类似经验的讲一下混分让道谢谢。
求高人解答... 展开
application/x-www-form-urlencoded格式的数据
数据中会出现汉字的我的ASP页文件已经用UTF-8格式保存
CODEPAGE属性也改成了65001
现在的问题是:
例如
Response.Write("Text=汉字&UserID=0001&UserName=用户1")
像这样输出的结果会被正常解析
而
Response.Write("Text=汉字&UserID=0001&UserName=" & rs("username"))
像这样的不会被解析也就是说数据库调出来的那一部分不是以UTF-8格式编码的
而是数据原来的格式 用什么方法改数据库(是Access数据库,数据是不能改的)
或者把从数据库调出来的字符串转成UTF-8格式呢 有过类似经验的讲一下混分让道谢谢。
求高人解答... 展开
3个回答
2013-08-14
展开全部
你是Ajax发送数据的吧,试试将输出值进行编码了再写出。js获取后会自动进行解码,然后输出就是原样了提供个asp的编码函数你试试,可以将它包含的公共文件中Function jsEncode(str)
Dim i, j, aL1, aL2, c, p
aL1 = Array(&h22, &h5C, &h2F, &h08, &h0C, &h0A, &h0D, &h09)
aL2 = Array(&h22, &h5C, &h2F, &h62, &h66, &h6E, &h72, &h74)
For i = 1 To Len(str)
p = True
c = Mid(str, i, 1)
For j = 0 To 7
If c = Chr(aL1(j)) Then
jsEncode = jsEncode & "\" & Chr(aL2(j))
p = False
Exit For
End If
Next
If p Then
Dim a
a = AscW(c)
If a > 31 And a < 127 Then
jsEncode = jsEncode & c
ElseIf a > -1 Or a < 65535 Then
jsEncode = jsEncode & "\u" & String(4 - Len(Hex(a)), "0") & Hex(a)
End If
End If
Next
End Function Response.Write("Text=汉字&UserID=0001&UserName=" & jsEncode( rs("username")))
Dim i, j, aL1, aL2, c, p
aL1 = Array(&h22, &h5C, &h2F, &h08, &h0C, &h0A, &h0D, &h09)
aL2 = Array(&h22, &h5C, &h2F, &h62, &h66, &h6E, &h72, &h74)
For i = 1 To Len(str)
p = True
c = Mid(str, i, 1)
For j = 0 To 7
If c = Chr(aL1(j)) Then
jsEncode = jsEncode & "\" & Chr(aL2(j))
p = False
Exit For
End If
Next
If p Then
Dim a
a = AscW(c)
If a > 31 And a < 127 Then
jsEncode = jsEncode & c
ElseIf a > -1 Or a < 65535 Then
jsEncode = jsEncode & "\u" & String(4 - Len(Hex(a)), "0") & Hex(a)
End If
End If
Next
End Function Response.Write("Text=汉字&UserID=0001&UserName=" & jsEncode( rs("username")))
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-14
展开全部
你先尝试一下,将你的ASP文件用记事本打开,然后重新另存为一下,但这里要注意的是将编码选择为:utf-8,如果还不行尝试在页面加入<meta http-equiv="content-type" content="text/html; charset=utf-8" />,如果问题还不能解决,你再补充一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-14
展开全部
Function UTF2GB(s)
Dim sm
Set sm = Server.CreateObject("ADODB.Stream")
With sm
.Type = 2
.Mode = 3
.Open
.CharSet = "UTF-8"
.WriteText s
.Position = 0
.CharSet = "GB2312"
UTF2GB = .ReadText(-1)
.Close
End With
Set sm = Nothing
End Function
Dim sm
Set sm = Server.CreateObject("ADODB.Stream")
With sm
.Type = 2
.Mode = 3
.Open
.CharSet = "UTF-8"
.WriteText s
.Position = 0
.CharSet = "GB2312"
UTF2GB = .ReadText(-1)
.Close
End With
Set sm = Nothing
End Function
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |