作者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