读书人

:用VB取UTF-8的文件后

发布时间: 2012-01-18 00:23:26 作者: rapoo

:用VB取UTF-8的文件后是
有一RPX文件用NotePad打后能正常示,其UTF-8,如下:
<?xml version= "1.0 " encoding= "UTF-8 " ?>

Private Sub Command1_Click()
Dim CurStr As String
Dim Str As String
Open "D:\TEST1.RPX " For Input As #1
Do While Not EOF(1)
Line Input #1, CurStr
Loop

End Sub
方法取后示
不知哪位高手能忙解
啦!

[解决办法]
将TEST1.RPX文件用记事本打开后另存为为ANSI格式保存,再用VB打开就不是乱码了。

[解决办法]

中国最佳原创:[VB6]支持UTF文本文件访问的模块
http://blog.csdn.net/zyl910/archive/2006/05/30/762693.aspx

转贴:[VB6]支持UTF文本文件访问的模块
http://chenoe.com/blog/article.asp?id=2030
[解决办法]
头大
[解决办法]
“只是研究透,所以目前不能解我的”
发TEST1.RPX to magnaforemost at gmail.com
[解决办法]
Private Sub Command1_Click()

Dim fileSize As Long
Dim bTmp() As Byte
Open App.Path & "\utf8.txt " For Binary As #1
fileSize = FileLen(App.Path & "\utf8.txt ")
ReDim bTmp(fileSize) As Byte
Get #1, , bTmp
Close #1

Dim unicode(1) As Byte
Dim lUnicode As Single

Dim index As Long
index = 0
While (index < fileSize)
If ((bTmp(index) And &H80) <> &H80) Then
Debug.Print Chr(bTmp(index))
index = index + 1
Else
unicode(1) = (bTmp(index) And &HF) * 16 + ((bTmp(index + 1) And &H3C) \ 4)
unicode(0) = (bTmp(index + 1) And &H3) * 64 + (bTmp(index + 2) And &H3F)
If ((unicode(1) And &H80) = &H80) Then
lUnicode = -1 '这负数部分未处理可以直接有memcpy进行地址操作
Else
lUnicode = unicode(1) * 256 + unicode(0)
End If
Debug.Print ChrW(lUnicode)
index = index + 3
End If
Wend

End Sub

读书人网 >VB

热点推荐