高分求 VB 读取文本乱码问题,文本编码为UTF-8

高分求 VB 读取文本乱码问题,文本编码为UTF-8,第1张

由于系统的需要,要国际化,但是由于那些字符串和翻译都写在EXCEL表格里面,如果一个一个的复制出来,那是相当麻烦的所以老大让我写一个转换器,从EXECEL表格中导出数据,然后写到PO扩展名的文本文件,要求UTF-8的编码格式

UTF-8是UNICODE编码格式的一种特殊情况对于汉字的处理,它是采用了三个字节对于它的具体情况,在这就不具体介绍,网上有相当多的资料在VB中,有很多API可以提供,比如连接EXCEL、连接数据库、ADODB数据流等。这些API都可以很方便的引用。

在写的过程中,让我有点苦恼的是,用UTF-8编码编写的文本文件,都会产生一个BOM,这使得转换出来的文件,在系统编译中编译不过去,必须要把BOM去掉。接下来通过代码讲讲怎么实现。

Dim app As ExcelApplication

Dim eworkbook As Workbook

Dim eworksheet As Worksheet

Dim eworksheet_count As Integer

Dim sheetName As String

Dim obj As Object

Dim FileNum

Dim file_path as String

Dim j as Integer

Dim filepath_save as String

filepath_save = "d:\"

Set app = New ExcelApplication //连接EXCEL

Set eworkbook = appWorkbooksOpen(file_path)

eworkbook_count = eworkbookWorksheetscount

For j = 1 To eworkbook_count

filepath_path = filepath_save & j & "txt"

Set eworksheet = eworkbookSheets(j)

sheetName = eworksheetName

Set obj = New ADODBStream //设置ADODB流

With obj

Open

Charset = "UTF-8"

Position = Size

WriteText "helloworld", 1

SaveToFile filepath_save

Close

End With

Set obj = Nothing

Open filepath_save For Input As #1 //消除UTF-8的BOM

Line Input #1, str

mm = Replace(str, str, "msgid """"")

Close #1

Open filepath_save For Binary As #FileNum

Put #FileNum, , mm

Close #FileNum

Next j

Set eworksheet = Nothing

eworkbookClose

Set eworkbook = Nothing

appQuit

Set app = Nothing

这是其中的一部分关键的代码,如果没有设置UTF-8的编码格式的话,一般NOTEPADE的写入格式都是默认为ANSI。好久没用VB写代码了,不过这次用起来还是感觉比较好的。所以在学校多学点是好的。

苹果电脑打开文件显示 文本编码"Unicode (UTF-8)"不适用”是设置错误在造成的,解决方法为:

1、首先,打开“文本编辑”程序。

2、打开"文本编辑"的"偏好设置"。

3、切换到"打开和存储"选项,在“纯文本文件编码”中设置“打开文件”的值为“中文(GB-18030)。退出。

4、重新打开刚才的文本文件,OK了。

欢迎分享,转载请注明来源:浪漫分享网

原文地址:https://hunlipic.com/langman/3610801.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-16
下一篇2023-08-16

发表评论

登录后才能评论

评论列表(0条)

    保存