在VB中如何把UTF-8编码转换为中文?
Flash中用XMLsocket把中文字符转换成utf-8编码发到VB里,在VB中如何把UTF-8编码转换为中文?我正在制作聊天室,需要源码。new_net,如果不转换成...
Flash中用XMLsocket把中文字符转换成utf-8编码发到VB里,在VB中如何把UTF-8编码转换为中文?
我正在制作聊天室,需要源码。
new_net,如果不转换成UTF-8,Flash里就显示不出来中文了。还有你的代码哪来的?我一用就错误。 展开
我正在制作聊天室,需要源码。
new_net,如果不转换成UTF-8,Flash里就显示不出来中文了。还有你的代码哪来的?我一用就错误。 展开
6个回答
展开全部
可以试下自己写转换的函数,给你点参考资料
转自新帆新闻组:
第一步:用二进制法读入文本数据,赋值给字节型数组,并判断前3个字
节是否UTF-8标记,如果是,才进行以下的处理
第二步:逐个字节判断是否汉字编码,如果是,就再提取后两个数组元
素,共三个数组元素来加以处理
第三步:将这三个数据都转换成16进制数据
第四步:将三个16进制数据都转换成二进制数据
第五步:从第一个二进制数据中去掉前4位,从第二、三个二进制数据
中分别去掉前2位,并将这三个处理后的二进制数据依次连接,成为一
个16位的字串
第六步:从这个二进制串中分别提取前8位和后8位转换成两个10进制
数据,这两个数据就是汉字的Unicode码了,将它们赋值给一个字符型
变量即可
转自新帆新闻组:
第一步:用二进制法读入文本数据,赋值给字节型数组,并判断前3个字
节是否UTF-8标记,如果是,才进行以下的处理
第二步:逐个字节判断是否汉字编码,如果是,就再提取后两个数组元
素,共三个数组元素来加以处理
第三步:将这三个数据都转换成16进制数据
第四步:将三个16进制数据都转换成二进制数据
第五步:从第一个二进制数据中去掉前4位,从第二、三个二进制数据
中分别去掉前2位,并将这三个处理后的二进制数据依次连接,成为一
个16位的字串
第六步:从这个二进制串中分别提取前8位和后8位转换成两个10进制
数据,这两个数据就是汉字的Unicode码了,将它们赋值给一个字符型
变量即可
展开全部
无须先转换成UTF-8再转成GB2312
更简单的:
'源串
dim strText as string ="要发往单片机的字符串"
'要输出的字节数组
dim arrbytOut() as byte
'转换
arrbytOut = System.Text.Encoding.GetEncoding("GB2312").GetBytes(strText)
更简单的:
'源串
dim strText as string ="要发往单片机的字符串"
'要输出的字节数组
dim arrbytOut() as byte
'转换
arrbytOut = System.Text.Encoding.GetEncoding("GB2312").GetBytes(strText)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
具体步骤为:
Public Function GetStringFromUTF8(ByRef data() As Byte) As String
Dim result As String, tmp(1 To 2) As Byte, char As String
For i = LBound(data) To UBound(data)
If data(i) < &H80 Then
result = result & Asc(data(i))
Else
If UBound(data) - i < 2 Then
Exit For
Else
tmp(2) = (data(i) - &HE0) * &H10 + (data(i + 1) - &H80) / 4
tmp(1) = (data(i + 1) Mod 4) * &H40 + (data(i + 2) - &H80)
char = buffer
result = result & char
i = i + 2
End If
End If
Next
GetStringFromUTF8 = result
End Function
Public Function GetStringFromUTF8(ByRef data() As Byte) As String
Dim result As String, tmp(1 To 2) As Byte, char As String
For i = LBound(data) To UBound(data)
If data(i) < &H80 Then
result = result & Asc(data(i))
Else
If UBound(data) - i < 2 Then
Exit For
Else
tmp(2) = (data(i) - &HE0) * &H10 + (data(i + 1) - &H80) / 4
tmp(1) = (data(i + 1) Mod 4) * &H40 + (data(i + 2) - &H80)
char = buffer
result = result & char
i = i + 2
End If
End If
Next
GetStringFromUTF8 = result
End Function
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先把UTF-8编码转成Byte数组,然后
StrConv(bytearr, vbUnicode, &H804)
StrConv(bytearr, vbUnicode, &H804)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
2L是.NET的代码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询