永发信息网

求VB将UTF-8编码的TXT文件转换成ANSI编码的代码

答案:4  悬赏:0  手机版
解决时间 2021-02-04 15:48
如题。。。
是将文件转换,不是字符串哦。。。
最佳答案
如楼上所说,楼主提问前也不百度一下
全部回答
charset设置为utf-8即可 function bytestobstr(body, charset) dim objstream set objstream = createobject("adodb.stream") objstream.type = 1 objstream.mode = 3 objstream.open on error resume next objstream.write body objstream.position = 0 objstream.type = 2 objstream.charset = charset bytestobstr = objstream.readtext objstream.close set objstream = nothing end function
立一个模块,复制下面代码 Option Explicit Private Declare Function MultiByteToWideChar Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByRef lpMultiByteStr As Any, ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long Private Const CP_UTF8 = 65001 '读文件至变量 Private Function GetFile(FileName As String) As String Dim i As Integer, BB() As Byte If Dir(FileName) = "" Then Exit Function i = FreeFile ReDim BB(FileLen(FileName) - 1) Open FileName For Binary As #i Get #i, , BB Close #i GetFile = BB End Function '功能: 把Utf8字符转化成ANSI字符 Public Function UTF8_Decode(FileName As String) As String Dim sUTF8 As String Dim lngUtf8Size As Long Dim strBuffer As String Dim lngBufferSize As Long Dim lngResult As Long Dim bytUtf8() As Byte Dim n As Long sUTF8 = GetFile(FileName) If LenB(sUTF8) = 0 Then Exit Function On Error GoTo EndFunction bytUtf8 = sUTF8 lngUtf8Size = UBound(bytUtf8) + 1 lngBufferSize = lngUtf8Size * 2 strBuffer = String$(lngBufferSize, vbNullChar) lngResult = MultiByteToWideChar(CP_UTF8, 0, bytUtf8(0), _ lngUtf8Size, StrPtr(strBuffer), lngBufferSize) If lngResult Then UTF8_Decode = Left(strBuffer, lngResult) End If EndFunction: End Function 二、调用举例: 如果你想把一个"c:\1.txt"的UTF-8文件转换为ANSI编码,可这样调用 dim s as string s=UTF8_Decode("c:\1.txt") '文件名请根据实际修改 此时,s存放的就是ANSI格式编码了,不会出现乱码问题
用编码转换工具就可以了。下载一个飞梭TXT文本数据处理百宝箱,就可以直接转换。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
感觉自己心里素质太差,考科目二一进去就挂了
盛达·水岸花城停车场(入口)地址在哪,我
下列关于鲁尔区综合整治措施,错误的是 A. 发
新月美食广场停车场(出入口)地址好找么,我有
黄瓜掐掉最底下的秧上面才会多长吗
闇蔽的意思是什么啊?知道的请说下!
古树地址在什么地方,想过去办事
babybaby请你不要生气了,哎呀!我的心脏就快受
北小西在北京有卖的吗?
角膜塑形镜怎样能换算出最终的光度
【再沸器】塔底再沸器的作用是什么?
东海县炬火广告传媒公司怎么去啊,有知道地址
我用的电表是刚换的,可是比原来的跑的快啊.问
如家酒店吴忠街心广场店停车场(出入口)地址好
标刺的意思是什么啊?知道的请说下!
推荐资讯
lim(lntan2x\ln∧2tanx)的极限多少?(X趋于0
农历六月十五吃汤圆的来历
如何竖着切开玻璃瓶
城市燃气管网系统中用来调节和稳定管网压力的
美丽吧美甲化妆地址有知道的么?有点事想过去
汽车大灯闪一下,闪两下,闪三下分别代表什么
旌旛的意思是什么啊?知道的请说下!
化妆品商标名字大全
爹的宝贝专业儿童摄影连锁机构(厚坡镇S249附
兴盛堂大药房这个地址在什么地方,我要处理点
怎么样才能查看举报我的新浪微博的人.
鲇鱼上竿的意思是什么啊?知道的请说下!
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?