作者twoseven (Tse)
看板Visual_Basic
标题[VB6 ] 关於unicode转换问题
时间Thu Mar 29 14:43:30 2012
本身不是很熟VB6 可是因为公司需要硬着下去做看看
希望给予指教
我的问题是在读写unicode
如
中字 unicode(10进位) 16
龟 40860 9F9C
如果使用 Hex(AscW("龟") '结果为 9F9C
但是用 AscW("龟") '结果为 -24676
使用 num = Val("&H9F9C") '结果还是 -24676 num宣告integer,double都一样
是因为大部分这些函式都是回传int吗
所以只能把9F9C直接一个一个拆开算吗?? 才可以得到40860
是否有更好的方式呢
另外像是
Dim i As Integer
Dim tt() As Byte
Dim str As String
tt = StrConv("龟", vbUnicode)
str = StrConv(tt, vbFromUnicode)
Debug.Print str '变成没东西 如果把字改为 如:爱 则没问题
For i = 0 To UBound(tt)
Debug.Print i & "=" & Hex(tt(i))
Next
龟字结果:
0=3F
1=0
爱字结果:
0=1B
1=0
2=61
3=0
请问上面为何如此??
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.117.41.57
1F:→ MOONRAKER:你的第一个问题+65536即可。 03/29 15:22
2F:→ twoseven:谢谢 03/29 16:03
3F:→ MOONRAKER:第二个问题还没空实验… 03/29 17:37
4F:推 blackAIX:问题1 lngNum = Val("&H9F9C&") 指定转成long 04/02 13:56
5F:→ blackAIX:问题2 原本就是Unicode了,不需要这样转吧 04/02 14:00
6F:→ blackAIX: tt = StrConv("龟", vbFromUnicode) '从Un转成Ansi 04/02 14:00
7F:→ blackAIX: tt = StrConv(tt, vbUnicode) '再从Ansi转成Un,看tt 04/02 14:01