VBA在Excel中汉字转换不同编码的方法

41 篇文章 0 订阅

VBA在Excel中汉字转换不同编码的方法


前言

计算机字符编码也称字集码,是把字符集中的字符编码为指定集合中某一对象,以便文本在计算机中存储和通过通信网络的传递。常见的编码有ASCII、UNICODE(10位)、UNICODE(16位)、GBK、UTF8等。
在编程中,会经常用到汉字转换为不同编码,以便于人机交流,花费了一些时间,在网上搜索到了几种汉字转编码的代码并稍加修改,以便日后编程时使用。如有侵权,请联系删除。


一、代码

1.汉字转10位unicode编码

Function strToUnicode10(str As String) As String 
  For i = 1 To Len(str)
    strToUnicode10 = strToUnicode10 & " " & AscW(Mid(str, i, 1))
  Next
End Function

2.汉字转16位unicode编码

data = pd.read_csv(
    'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

3.汉字转GBK编码

Function strToGBK(str As String) As String 
  For i = 1 To Len(str)
   strToGBK = strToGBK & " " & Hex(Asc(Mid(str, i, 1)))
  Next
End Function

4.汉字转UTF8编码

Function strToUtf8(str As String) As String    
    Dim wch  As String
    Dim uch As String
    Dim szRet As String
    Dim x As Long
    Dim inputLen As Long
    Dim nAsc  As Long
    Dim nAsc2 As Long
    Dim nAsc3 As Long
    If str = "" Then
        strToUtf8 = str
        Exit Function
    End If
    inputLen = Len(str)
    For x = 1 To inputLen
        wch = Mid(str, x, 1)
        nAsc = AscW(wch)
    '对于<0的编码 其需要加上65536
        If nAsc < 0 Then nAsc = nAsc + 65536
    '对于<128位的ASCII的编码则无需更改
        If (nAsc And &HFF80) = 0 Then
            szRet = szRet & wch
        Else
            If (nAsc And &HF000) = 0 Then
                uch = "%" & Hex(((nAsc \ 2 ^ 6)) Or &HC0) & Hex(nAsc And &H3F Or &H80)
                szRet = szRet & uch
            Else
                uch = "%" & Hex((nAsc \ 2 ^ 12) Or &HE0) & "%" & _
                Hex((nAsc \ 2 ^ 6) And &H3F Or &H80) & "%" & _
                Hex(nAsc And &H3F Or &H80)
                szRet = szRet & " " & uch
            End If
        End If
    Next
    strToUtf8 = szRet
End Function

二、运行效果截图

​​​​在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值