vb怎么把中文字符串转成网页传输的中文编码 10

就是把中文字符串转成类似%CA%E4%B5%C4%D6%D0%CE%C4%B1%E0的好像有转成的编码两种呀比如“亮掉”,用gshuli的方法是得到C1%C1%B5%F4... 就是把中文字符串转成类似%CA%E4%B5%C4%D6%D0%CE%C4%B1%E0的
好像有转成的编码两种呀
比如“亮掉”,用gshuli的方法是得到C1%C1%B5%F4 。在百度上搜索这个词,看地址是%E4%BA%AE%E6%8E%89。。请问怎么得到后面的那个编码呀
展开
 我来答
沙慧月03
2012-07-18 · TA获得超过2157个赞
知道大有可为答主
回答量:2717
采纳率:100%
帮助的人:3627万
展开全部

那我知道是另一种编码了

Private Declare Function MultiByteToWideChar Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long

Private Const CP_UTF8 = 65001

'调用Dim b() As Byte,msgbox Utf8ToUnicode(b)

Function Utf8ToUnicode(ByRef Utf() As Byte) As String

    Dim lRet As Long

    Dim lLength As Long

    Dim lBufferSize As Long

    lLength = UBound(Utf) - LBound(Utf) + 1

    If lLength <= 0 Then Exit Function

    lBufferSize = lLength * 2

    Utf8ToUnicode = String$(lBufferSize, Chr(0))

    lRet = MultiByteToWideChar(CP_UTF8, 0, VarPtr(Utf(0)), lLength, StrPtr(Utf8ToUnicode), lBufferSize)

    If lRet <> 0 Then

        Utf8ToUnicode = Left(Utf8ToUnicode, lRet)

    Else

        Utf8ToUnicode = ""

    End If

End Function

Private Sub Command1_Click()

MsgBox UTF8EncodeURI("亮掉")

End Sub 

鲍辕舜
2012-07-18 · TA获得超过278个赞
知道小有建树答主
回答量:849
采纳率:0%
帮助的人:292万
展开全部
转换为字符串:
我这里有一个方法,看到你写专程!
/ / / <summary>
?/ / /首选编码的代码页名称
??/ / / </摘要>
??/ / /的<param Name="srcName">原始编码格式</ PARAM>
??/ / / <param name="convToName">转换编码格式</参数>
??/ / / <param Name="value">的需要转换的字符串</ PARAM>
???/ / /该<returns>返回转换后的字符串</>
??公共静态字符串EnCodeCovert(srcName字符串,convToName字符串,字符串值)
??
????System.Text.Encoding srcEncode = System.Text.Encoding.GetEncoding(srcName)的;
????System.Text.Encoding convToEncode = System.Text.Encoding.GetEncoding(convToName)的;
????字节[]字节= srcEncode.GetBytes(值);
????System.Text.Encoding.Convert(srcEncode,convToEncode,字节,0,bytes.Length);
???返回convToEncode.GetString(字节);
??}
你在过去的尝试。

我还没有测试,但编译器是没有问题的,你可以试试。
我没有测试,没有你说的环境! ! !
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zgfoxbear
2012-07-18 · TA获得超过770个赞
知道小有建树答主
回答量:160
采纳率:100%
帮助的人:37.3万
展开全部
Option Explicit
Private Sub Command1_Click()
MsgBox UnCode("%CA%E4%B5%C4%D6%D0%CE%C4%B1%E0")

End Sub
'编码
Function EnCode(DescString As String) As String
Dim Buff() As Byte
Dim Tmp() As String
Dim i As Long, n As Long

Buff = StrConv(DescString, vbFromUnicode)
n = UBound(Buff)
ReDim Tmp(n)
For i = 0 To n
Tmp(i) = (Hex(Buff(i)))
Next i
EnCode = "%" & Join(Tmp, "%")
End Function
'反编码
Function UnCode(Code As String) As String
Dim TmpCode As String
Dim Tmp() As String, TmpBuff() As Byte
Dim i As Long, n As Long

TmpCode = Right(Code, Len(Code) - 1)
Tmp = Split(TmpCode, "%")
n = UBound(Tmp)
ReDim TmpBuff(n)
For i = 0 To n
TmpBuff(i) = Val("&H" & Tmp(i))
Next i
UnCode = StrConv(TmpBuff, vbUnicode)
End Function
'这可是我的原创,把分给我吧

这是编码规则不同,这个你百度一下吧
追问
好像有转成的编码两种呀
比如“亮掉”,用您的方法是得到C1%C1%B5%F4 。在百度上搜索这个词,看地址是%E4%BA%AE%E6%8E%89。。请问怎么得到后面的那个编码呀
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
环业软件
2012-07-18 · TA获得超过1276个赞
知道小有建树答主
回答量:865
采纳率:100%
帮助的人:590万
展开全部
Private Sub Command1_Click()
Dim x() As Byte
aa = "输的中文编"
x = StrConv(aa, vbFromUnicode)
For i = 0 To UBound(x)
Print "%"; Hex$(x(i));
Next
End Sub
追问
好像有转成的编码两种呀
比如“亮掉”,用您的方法是得到C1%C1%B5%F4 。在百度上搜索这个词,看地址是%E4%BA%AE%E6%8E%89。。请问怎么得到后面的那个编码呀
追答
这是转成utf-8编码
Function UTF8EncodeURI(szInput) '转成utf-8编码函数
Dim wch, uch, szRet
Dim x
Dim nAsc, nAsc2, nAsc3
If szInput = "" Then
UTF8EncodeURI = szInput
Exit Function
End If
For x = 1 To Len(szInput)
wch = Mid(szInput, x, 1)
nAsc = AscW(wch)
If nAsc < 0 Then nAsc = nAsc + 65536
If (nAsc And &HFF80) = 0 Then
szRet = szRet & wch
Else
If (nAsc And &HF000) = 0 Then
uch = "%" & Hex(((nAsc \ 2 ^ 6)) Or &HC0) & Hex(nAsc And &H3F Or &H80)
szRet = szRet & uch
Else
uch = "%" & Hex((nAsc \ 2 ^ 12) Or &HE0) & "%" & _
Hex((nAsc \ 2 ^ 6) And &H3F Or &H80) & "%" & _
Hex(nAsc And &H3F Or &H80)
szRet = szRet & uch
End If
End If
Next
UTF8EncodeURI = szRet
End Function

Private Sub Command1_Click()
aa = "亮掉"
Print UTF8EncodeURI(aa)’调用转成utf-8编码函数
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
money0_04c351c2
2012-07-18 · TA获得超过4142个赞
知道大有可为答主
回答量:5505
采纳率:49%
帮助的人:1614万
展开全部
如果是 VB.net 可以简单的用 System.Web.HttpUtility.UrlEncode("字符串") 来转换。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wolf3t
2012-07-18 · 超过27用户采纳过TA的回答
知道答主
回答量:80
采纳率:0%
帮助的人:81.5万
展开全部
两个%的16进制数据掉换顺序后用chrw,strconv函数转换,例如%CA%E4,得到“输”
?strconv(chrw(&HE4CA),vbUnicode)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式