有一个utf8编码的CSV文件,要把它读取出来并显示在VB应用程序中怎么做?这个转换函数怎么写?
解决方案 »
- 困扰很久的 数据库 image类型字段 存取文件的问题
- 请问如何知道windows画板内存数据的含义?
- 请问如何使用Listview控件下的finditem方法呢?
- 急救,关于VB的一个很基础的问题[原创]
- Excel 宏-模块1 编译错!: ADODB.Connection 用户定义类型未定义!!?
- 问一个弱弱的问题,请会的老大回答!谢谢
- 求关于开发dll的教程,请大家给予帮助,这里先谢过了!
- 如果用image1读取SQL中的图片?
- 高手幫忙!50分相送!
- dll问题
- 如何在FLASH.OCX控件中使用自定义的右键菜单?
- 如何对Treeview Listview同步显示内容!?(高手也有遇到问题的时候!)
Option ExplicitPublic Const CP_UTF8 = 65001
Public Const CP_ACP = 0
Public Declare Function MultiByteToWideChar Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As LongPublic Function ConvertToUnicode(bytes() As Byte, l As Long) As Byte()
'//参数说明:
'//bytes(),二进制数组,可以是从一个文件或各种编码的字符串取得
'//l,bytes()数组的长度。
'//MultiByteToWideChar(CP_UTF8, 0, VarPtr(bytes(0)), l, VarPtr(byteBuff1(0)), 0)
'//这中间的CP_UTF8,换成其它便可完成其它编码的转换
Dim byteBuff1() As Byte
Dim byteBuff2() As Byte
Dim i As Integer
Dim s As Long
Dim strResult As String
Dim retCode As Long
If UBound(bytes) < 1 Then
ConvertToUnicode = ""
Exit Function
End If
ReDim byteBuff1(l * 4)
s = MultiByteToWideChar(CP_UTF8, 0, VarPtr(bytes(0)), l, VarPtr(byteBuff1(0)), 0)
ReDim byteBuff1(s * 2 - 1)
retCode = MultiByteToWideChar(CP_UTF8, 0, VarPtr(bytes(0)), l, VarPtr(byteBuff1(0)), s) ConvertToUnicode = byteBuff1
End Function