美文网首页
VBA学堂——判断文本编码

VBA学堂——判断文本编码

作者: Excel大咖 | 来源:发表于2019-10-23 10:13 被阅读0次

    通过VBA怎么去判断文本的编码

    首先了解文本的编码。

    一般用于Windows系统的(扩展名为.txt)文本编码有四种:

    ANSI/Unicode big endian/Unicode /UFT-8


    不同的编码,可以根据文本的前两个字节来判断编码的格式

    ANSI:        无格式定义;

    Unicode:       前两个字节为FFFE;

    Unicode big endian: 前两字节为FEFF; 

    UTF-8:        前两字节为EFBB,第三字节为BF;

    通常我会把字节从16进制转为10进制可以得到

    ANSI:        无格式定义;

    Unicode:       前两个字节为255254;

    Unicode big endian: 前两字节为254255; 

    UTF-8:        前两字节为239187,第三字节为191;


    知道前两个字节代表什么,这样读取文本后,判断前两个字节就能判断文本的编码:

    代码如下:

    Sub QQ_75901240()

        MsgBox GetEncode("D:\a.txt")  '判断文本a的编码

    End Sub

    Function GetEncode(ByVal myFileName As String)

        Dim FS As Integer

        Dim Temp(2) As Byte

        Dim i As Long

        FS = FreeFile

        Open myFileName For Binary Access Read As #FS  '读取文本,记为#FS

        Get #FS, 1, Temp

        Close #FS

        Select Case Temp(0) & Temp(1)    'Temp(0) 为字节一,Temp(1) 为字节二

        Case "255254"

            GetEncode = "Unicode"    '文件是Unicode编码

        Case "254255"

            GetEncode = "Unicode Big Endian" '文件是UnicodeBigEndian编码

        Case "239187"

            GetEncode = "UTF-8"    '文件是utf-8编码

        Case Else

            GetEncode = "ANSI"  '文件是ascii编码

        End Select

    End Function

    案例下载:

    https://pan.baidu.com/s/1htanWsRBB4yznEweecnbDQ

    相关文章

      网友评论

          本文标题:VBA学堂——判断文本编码

          本文链接:https://www.haomeiwen.com/subject/bftmhftx.html