首页 > 编程语言 >整个好活:micropython utf-8转gb2312

整个好活:micropython utf-8转gb2312

时间:2023-07-19 11:46:14浏览次数:59  
标签:__ micropython utf self gb2312 好活 def

class gb2312(object):
    def __init__(self):
        self.f = open('utf2gb2312.bin', 'r', encoding='utf-8')

    def b2i(self, byte):  # bytes转int
        r = 0
        for i in range(len(byte)):
            r = (r << 8) + byte[i]
        return r
https://blog.csdn.net/jd3096/article/details/130257320
    def i2b(self, num):  # int转bytes
        num = int(num, 16)
        return num.to_bytes(2, 'big')

    def one_char(self, char):  # 将一个字符转化成gb2312
        utf_byte = char.encode('utf-8')
        r = self.B_S(0, 7296, self.b2i(utf_byte))
        gb2312_byte = self.i2b(r)
        # print(gb2312_byte)
        return gb2312_byte

    def strs(self, st):  # 将字符串转化成gb2312
        r = b''
        for s in st:
            # print(s.encode('utf-8'))
            if len(s.encode('utf-8')) <= 1:
                r += s.encode('utf-8')
            else:
                r += self.one_char(s)
        return r

    def B_S(self, low, high, m):  # 二分查找
        if 0 <= low <= high <= 7296:
            mid = (low + high) // 2
            self.f.seek(mid * 12)
            data = self.f.read(12)
            utf = data[0:6]
            if int(utf, 16) < m:
                return self.B_S(mid + 1, high, m)
            elif int(utf, 16) > m:
                return self.B_S(low, mid - 1, m)
            else:
                return data[7:-1]

    def __del__(self):
        self.f.close()
        
fontbyte = gb2312()
r = fontbyte.strs('专业接单')
print(r)
        

  https://blog.csdn.net/jd3096/article/details/130257320

 

标签:__,micropython,utf,self,gb2312,好活,def
From: https://www.cnblogs.com/cqmcu/p/17565165.html

相关文章

  • MySQL8.0中utf8mb4的强大:释放多语言数据的全部潜能
     在现代网络应用中,支持多种语言和字符集变得越来越重要。随着全球化的兴起,存储和处理多语言数据的需求已变得至关重要。MySQL作为最流行的关系数据库管理系统之一,它意识到了这一需求,并在其8.0版本中引入了utf8mb4,从而改变了游戏规则。在本文中,我们将通过实际示例探讨utf8mb4及其......
  • java 判断字符串内容是utf-8还是utf8mb4
    判断字符串内容是UTF-8还是UTF8MB4的方法概述在Java中,判断字符串内容是UTF-8还是UTF8MB4可以通过检查字符编码范围来实现。UTF-8使用1到4个字节表示一个字符,而UTF8MB4使用1到4个字节表示一个字符。下面将介绍整个流程和每一步需要做的事情。流程步骤描述1.将字符串转......
  • 解决oracle zhs16gbk和MySQL utf8转换乱码的具体操作步骤
    解决OracleZHS16GBK和MySQLUTF8转换乱码问题作为一名经验丰富的开发者,我将向你解释如何解决OracleZHS16GBK和MySQLUTF8转换乱码问题。我们将按照以下步骤进行操作:步骤说明1导出数据2创建MySQL数据库3创建UTF8编码的表4导入数据接下来,我将详细解释......
  • CPython, Pypy, MicroPython...还在傻傻分不清楚?
    哈喽大家好,我是咸鱼当我们说Python时,通常指的是官方实现的CPython但还有很多比如Pypy、Jython、MicroPython、Brython、RustPython等“python”许多小伙伴看到这些带“python”的概念可能一头雾水,心想这跟我平时接触到的python有什么区别吗?这些到底是什么那么今天这......
  • iframe编码为utf-8.嵌入页面为gb2312 ,word导出默认为gb2312 格式
    1、使用记事本打开html,另存为,保存类型选择:"所有文件"、编码选择:“UTF-8” 2、打开保存后文件编码类型改成utf-8<metacharset="utf-8"/>第一个步骤是为了把内容改成utf-8,然后直接执行第二步改编码可能会报乱码......
  • windows上,gbk utf8相互转换
    #include<locale>#include<codecvt>inlinestd::stringutf8_to_gbk(conststd::string&str){std::wstring_convert<std::codecvt_utf8<wchar_t>>conv;std::wstringtmp_wstr=conv.from_bytes(str);//GBKlocalenamei......
  • MDK 文件编码转换 utf8
    由于本人偏向于utf8编码的文件,所以编辑器都设置的utf8编码,这就导致了gb2312的编码文件打开后会乱码。于是在网上找到了转换编码的工具。以下也是从网上找来的,代码也比较简单。需要安装python或者path路径里面包含python路径,同时还需要pipinstallchardetimportsysimportchar......
  • 将以%号开头的gb2312编码转化为汉字
    解码importurllib.parsemao='%C3%AB%CF%FE%CD%AE'#此编码格式为gb2312mao=urllib.parse.unquote(mao,encoding='gb2312')#urllib.parse.unquote()的默认编码格式为‘utf-8’print(mao)guan='%E5%85%B3%E6%99%93%E5%BD%A4'......
  • 51.pyinstaller打包后,打开exe程序提示SyntaxError: Non-UTF-8 code starting with '\
    最后开发了一款小工具,然后确定一切测试没有问题,想通过pyinstaller将其打包成exe,像类似的打包以前也经常打包的,复杂一点的也都是打包成功的,但这里感觉程序很简单,打包居然出现了以下错误。我的python版本是3.8.9,然后pyinstaller版本是5.9.0,不知道会不会是版本不兼容的问题,看网上哪......
  • 做网站用UTF-8还是GB2312?
    经常我们打开外国网站的时候出现乱码,又或者打开很多非英语的外国网站的时候,显示的都是口口口口口的字符,WordPress程序是用的UTF-8,很多cms用的是GB2312。●为什么有这么多编码?●UTF-8和GB2312有什么区别?●我们在国内做网站是用UTF-8编码格式还是GB2312编码格......