[讨论] micropython不支持GBK编码

lemon1394   2021-8-21 22:26 楼主

micropython不支持GBK编码,只支持UTF-8

 

'我'.encode()
'我'.encode('gbk')
'我'.encode('gb2312')
'我'.encode('utf-8')

竟然都是一个结果

b'\xe6\x88\x91'

本来还想用HZK16字库的,这下用不成了。

回复评论 (5)

不支持GBK编码,那就有点小麻烦

点赞  2021-8-22 08:19

统一用utf-8是好事,不用考虑各种兼容问题。

点赞  2021-8-22 18:36

UTF-8是大势所趋,但是micropython不支持GBK编码就是他的不对了,更别说支持中文了。

我已经准备好了一个有一点点不完美的方案解决这个中文显示的方案了。

大体思路:

micropython不支持GBK,python支持,用python做一个unicode码转表。

每次取汉字点阵时,先到转码表里找到汉字的区位码,再到HZK16里去获取点阵。

稍后我会发布完整的方案,当然这个方案不是我原创的,但是思路是一样的。

这个方案的优点是可以直接用HZK16字库,ASC16字库,不用自己做字库,有完整的7000+汉字,而且解决了加载自制字库太大,导致内存不够用的问题。

有一点点的不完美是字库文件是268K左右,转码表也有20多K,大是大了点,但还在可接受范围内。

点赞  2021-8-23 11:24

还是utf-8好,哪都适用。

点赞  2021-8-25 11:36

有人搞成了,https://github.com/kaixindelele/ssd1306-MicroPython-ESP32-Chinese/

点赞  2021-9-21 04:06
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复