vb html uft-8,在VB6中附加(utf-8编码)编写文本文件

我必须在VB6中编写一个文本文件.我需要附加和utf-8编码.

我尝试了两个解决方案,一个使用“TextStream”,另一个使用“ADODB.Stream”.

第一个:

Set fsoFile = fso.OpenTextFile(FileIn(fi),ForAppending,True)

fsoFile.WriteLine "kkkjòòkkkkjlòlk"

fsoFile.Close

附加效果不错,但我如何编写utf-8编码?

第二个:

Dim ST As ADODB.Stream

Set ST = New ADODB.Stream

ST.Mode = adModeReadWrite

ST.Type = adTypeText

ST.Charset = "UTF-8"

ST.Open

ST.LoadFromFile FileIn(fi)

ST.Position = ST.Size

ST.WriteText "kkkjòòkkkkjlòlk"

ST.SaveToFile FileIn(fi)

ST.Close

在utf-8中正确写入,但我不能附加写入文件,但只能使用“adSaveCreateOverWrite”.

我怎样才能做到这一点?还有另一种方式吗?

非常感谢你.

您可以将二进制I / O与API调用结合使用以执行到UTF-8的转换:

Option Explicit

Private Const CP_UTF8 As Long = 65001

Private Declare Function WideCharToMultiByte Lib "kernel32" ( _

ByVal CodePage As Long,_

ByVal dwFlags As Long,_

ByVal lpWideCharStr As Long,_

ByVal cchWideChar As Long,_

ByVal lpMultiByteStr As Long,_

ByVal cchMultiByte As Long,_

ByVal lpDefaultChar As Long,_

ByVal lpUsedDefaultChar As Long) As Long

Private Function OpenAppendUTF8(ByVal FileName As String) As Integer

OpenAppendUTF8 = FreeFile(0)

Open FileName For Binary Access Write As #OpenAppendUTF8

Seek #OpenAppendUTF8,LOF(OpenAppendUTF8) + 1

End Function

Private Sub WriteUTF8( _

ByVal FNum As Integer,_

ByVal Text As String,_

Optional ByVal NL As Boolean)

Dim lngResult As Long

Dim UTF8() As Byte

If NL Then Text = Text & vbNewLine

lngResult = WideCharToMultiByte(CP_UTF8,StrPtr(Text),Len(Text),_

0,0)

If lngResult > 0 Then

ReDim UTF8(lngResult - 1)

WideCharToMultiByte CP_UTF8,_

VarPtr(UTF8(0)),lngResult,0

Put #FNum,UTF8

End If

End Sub

Private Sub Main()

Dim F As Integer

F = OpenAppendUTF8("test.txt")

WriteUTF8 F,"Hello"

WriteUTF8 F,ChrW$(&H2026&)

WriteUTF8 F,"World",True

Close #F

MsgBox "Done"

End Sub

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值