编码问题,请孟子等牛人来解决,已查过许多方法不能解决!
我们头让我用asp搞一个综合搜索的功能。
一个文本框 下面可以选择用哪个搜索(可多个,引型是从后台添加的)进行搜索。
比如我后台添加了 baidu 和 google 文本框下就有2个 多选框,如果我都勾选。点搜索以后 在文本框下面显示 搜索结果( 不是采集结果,是要引型的整个页面),结果上面还有2个(因为就选了2个引型) 按钮,比如现在结果显示的是 baidu的结果 我点 google按钮时 结果就要变成google的结果。
结果是通过一个 iframe 来调的。
我搜索数字英文都可以 但搜索中文时会出现乱码。我页面设置是gb2312 ,但搜索引型 有的编码是 utf-8 有的是 gb2312 我把页面改成utf-8 也不能全部正确显示。
不知道这个问题如何解决。如果不用iframe 解决也行 我可以改。主要是这个功能不能有乱码。
另后台可以添加NN多引型 中搜。sogou。MSN。 yahoo. soso.......多个。
------解决方案--------------------注意escape函数
js,vbs,C#客户端服务器端通吃.
------解决方案--------------------http://www.ic36.com/search/supersearch.asp?keyword=%D6%D0%CE%C4&Submit=++%CB%D1%CB%F7++&idnum=IC%D6%AE%BC%D2&idnum=IC%BD%BB%D2%D7%CD%F8&idnum=%BB%AA%C7%BF%B5%E7%D7%D3%CA%C0%BD%E7%CD%F8&idnum=21IC&idnum=%CA%A2%C3%F7%C1%E3%BC%FE%CD%F8&idnum=114IC&idnum=%BF%E2%B4%E6%D4%DA%CF%DF&idnum=%B0%D9%B6%C8&idnum=Google&idnum=Brokerforum#
我以前做的,跟你说的一模一样的东西,没发现你说的问题...
------解决方案--------------------Public Function isdigit(ByVal iValue)
isdigit = CBool(iValue > = 48 And iValue <= 57)
End Function
Public Function isalpha(ByVal iValue)
isalpha = CBool((iValue > = 65 And iValue <= 90) Or (iValue > = 97 And iValue <= 122))
End Function
Public Function isalnum(ByVal iValue)
isalnum = CBool(isdigit(iValue) Or isalpha(iValue))
End Function
Private Function MyHex(ByVal iValue)
Dim ret
ret = Hex(iValue)
MyHex = String(Len(ret) Mod 2, "0 ") & ret
End Function
Public Function URLEncode8(ByVal strIn)
Dim ret
Dim i
Dim u
Dim b(2)
For i = 1 To Len(strIn)
u = AscW(Mid(strIn, i, 1)) And &HFFFF&
If u < 128 Then
If isalnum(u) Then
ret = ret & Chr(u)
Else
ret = ret & "% " & MyHex(u)
End If
ElseIf u < 2048 Then
b(1) = &H80 Xor (u And &H3F)
u = u \ (2 ^ 6)
b(0) = &HC0 Xor (u And &H1F)
ret = ret & "% " & MyHex(b(0)) & "% " & MyHex(b(1))
Else
b(2) = &H80 Xor (u And &H3F)
u = u \ (2 ^ 6)
b(1) = &H80 Xor (u And &H3F)
u = u \ (2 ^ 6)
b(0) = &HE0 Xor (u And &HF)
ret = ret & "% " & MyHex(b(0)) & "% " & MyHex(b(1)) & "% " & MyHex(b(2))
End If
Next
URLEncode8 = ret
End Function
UTF-8编码的就用这个加密
<iframe src= " <%=replace(Trim(conn.execute( "select slink from s where sid= "&stypelist(0))( "slink ")), "$$$$ ", URLEncode8(skey))%> " width= "100% " height= "100% "> </iframe>
------解决方案--------------------取值用escape显示用unescape,确实很好用
------解决方案--------------------这个我也碰到过,你可参看http://www.zhaodao.net/上面的搜索功能,至于乱码,可用escape()函数解决。