
vb 如果对UTF-8的文本进行读写?
要对一有日文的文本文件进行替换其中部分文字,并保存,由于日文是用UTF-8编码的,Open语句和replace语句都好像失效了。麻烦大家给个解决方法,谢谢了。...
要对一有日文的文本文件进行替换其中部分文字,并保存,由于日文是用UTF-8编码的,Open语句和replace语句都好像失效了。麻烦大家给个解决方法,谢谢了。
展开
2个回答
展开全部
使用StrConv只能转换utf8 里面的单字节,双字符的字符还会是乱码.
另外还有的办法能转换utf8里面的大部分字符,但是唯独双字节和单字节相连的地方,两个字符会变乱码.
如果是读取文件里面的字符,用adodb.stream处理的效果最好
代码如下,sUTF8File 表示文件的路径
使用前要先引用Microsoft ActiveX Data Objects ( ado)
Public Function readUTF8file(ByVal sUTF8File As String) As String
If Len(sUTF8File) = 0 Or Dir(sUTF8File) = vbNullString Then Exit Function
Dim ados As Object
Set ados = CreateObject("adodb.stream")
With ados
.Charset = "utf-8"
.Type = 2
.Open
.LoadFromFile sUTF8File
readUTF8file = .ReadText
.Close
End With
Set ados = Nothing
End Function
另外还有的办法能转换utf8里面的大部分字符,但是唯独双字节和单字节相连的地方,两个字符会变乱码.
如果是读取文件里面的字符,用adodb.stream处理的效果最好
代码如下,sUTF8File 表示文件的路径
使用前要先引用Microsoft ActiveX Data Objects ( ado)
Public Function readUTF8file(ByVal sUTF8File As String) As String
If Len(sUTF8File) = 0 Or Dir(sUTF8File) = vbNullString Then Exit Function
Dim ados As Object
Set ados = CreateObject("adodb.stream")
With ados
.Charset = "utf-8"
.Type = 2
.Open
.LoadFromFile sUTF8File
readUTF8file = .ReadText
.Close
End With
Set ados = Nothing
End Function
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询