在VB中,能不能将unicode big endian汉字转为BIG码(或是GB,GBK)

zhiboyi 2003-04-26 10:00:24
我现在有一unicode big endian编码"2C6E",在编码本中它代表的是一个"测"字(是繁体的测")
能不能用程序将"2C6E"转为"测"字
...全文
139 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhiboyi 2003-04-26
  • 打赏
  • 举报
回复
先谢谢你了!

Dim l As Long
Dim s As String
s = "2C6E"
l = Val("&h" & Mid(s, 1, 2))
l = l * 256 + Val("&h" & Mid(s, 3))
s = Chr(l)
Text1.Text = s
后,我的Text1.Text显示为","而不是繁体的“测”,我的系统是XP,VB6
是不是我的系统有问题啊?
用户 昵称 2003-04-26
  • 打赏
  • 举报
回复
只好先转化成字符串
dim l as long
dim s as string
s = "2C6E"
l = val( "&h" & mid( s, 1, 2 ) )
l = l * 256 + val( "&h" & mid( s, 3 ) )
s = chr( l )
得到繁体的“测”.

然后用对照表,或者找工具,或者用front page都行。
shawls 2003-04-26
  • 打赏
  • 举报
回复
[名称] GB/BIG5内码转换和辨别

[语言种类] Visual Basic

[数据来源] 未知

[源代码内容]

VB提供的StrConv这个函数,完全可以解决简繁体的转换问题。下面是一个简繁体的转换
的函数,可以实现简体到繁体、繁体到简体的相互转化。

'****** 简繁体互换 GB-->Unicode-->BIG5 Or BIG5-->Unicode-->GB *****************
'参数sStr为需要转换的文本
'参数iConver为要转化的类型,为1时表示繁体到简体的转换,为2时表示简体到繁体的转换
Function GBBIG5(sStr As String, iConver As Integer) As String
On Error Resume Next
Dim STR
If iConver = 1 Then 'BIG5-->GB
STR = StrConv(sStr, vbFromUnicode, &H804)
GBBIG5 = StrConv(STR, vbUnicode, &H404)
ElseIf iConver = 2 Then 'GB-->BIG5
STR = StrConv(sStr, vbFromUnicode, &H404)
GBBIG5 = StrConv(STR, vbUnicode, &H804)
End If

End Function

注:使用这一函数,结果实际上显示的仍是繁体!所以我们只能称为内码转换

如何判断文本是GB还是Big5

1. GB code的内码的两个字节都是从A0H - FEH之间的

2. BIG code的内码的第一个字节是80H - FFH,第二个字节是00H - FFH

所以,你要浏览全文,看看是否有第二个字节是小于7FH的汉字,如果有的话,一般是BIG code的。
当然也有特殊情况,不过非常少见的


以上代码保存于: SourceCode Explorer(源代码数据库)
复制时间: 2003-04-26 下午 07:41:19
软件版本: 1.0.819
软件作者: Shawls
E-Mail: ShawFile@163.Net
QQ: 9181729
zhiboyi 2003-04-26
  • 打赏
  • 举报
回复
2C6E
是Unicode Big_Endian 编码方式中的"测"字
用户 昵称 2003-04-26
  • 打赏
  • 举报
回复
2C6E不是“测”的码子。
sxs69 2003-04-26
  • 打赏
  • 举报
回复
不好意思,弄错了
Private Sub Command1_Click()
Dim arr() As Byte
arr = StrConv("测", vbFromUnicode)

Text1 = StrConv(arr, vbUnicode)
End Sub
sxs69 2003-04-26
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim arr(1) As Byte
arr(0) = &H2C
arr(1) = &H6E
Text1 = StrConv(arr, vbFromUnicode)
End Sub
lazycat818 2003-04-26
  • 打赏
  • 举报
回复
对于unicode big endian,我不清楚,是否何以研究一下strconv函数?

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧