亂碼問題:用VB讀取UTF-8編碼的文件后是亂碼解决方法

亂碼問題:用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.****.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