amobbs.com 阿莫电子技术论坛

标题: 设备返回到时UTF8字符,如何转换为GB2312字符? [打印本页]

作者: fbwcpu    时间: 2023-6-1 17:46
标题: 设备返回到时UTF8字符,如何转换为GB2312字符?
设备返回到时UTF8字符数据流,如何转换为对应的GB2312字符?   是有公式换算 还是查表?  用过的朋友讲解哈!
作者: yyts    时间: 2023-6-1 18:33
没有公式,查表。
作者: wxws    时间: 2023-6-1 18:34
单片机干这累的。pc或linux 就简单了
作者: t3486784401    时间: 2023-6-1 19:14
就是查表。utf8到unicode还能有公式,但再到2312就一定是查表了。

反正都要查表,直接一步utf8查到2312最爽快
作者: fbwcpu    时间: 2023-6-1 21:58
t3486784401 发表于 2023-6-1 19:14
就是查表。utf8到unicode还能有公式,但再到2312就一定是查表了。

反正都要查表,直接一步utf8查到2312最 ...

(引用自4楼)

啥表,能直接UTF8到GB2312?
作者: t3486784401    时间: 2023-6-1 22:09
fbwcpu 发表于 2023-6-1 21:58
啥表,能直接UTF8到GB2312?
(引用自5楼)

自己做啊。

PC 上先遍历一下 2312 字符库,生成个 TXT 文档,文件尺寸 2*N;
上述文档找软件另存一下 UTF8,注意不要加 BOM 签名,文件尺寸 3*N;

最后自己写 C 读取上述文件,生成所需表格。
作者: Himem    时间: 2023-6-1 22:40
本帖最后由 Himem 于 2023-6-1 22:44 编辑
t3486784401 发表于 2023-6-1 22:09
自己做啊。

PC 上先遍历一下 2312 字符库,生成个 TXT 文档,文件尺寸 2*N;
(引用自6楼)


那还是不如先转成utf16再查表呀,gb2312汉字映射到utf16应该都是2字节的,就算直接寻址最多占128kb rom空间
作者: lusson    时间: 2023-6-2 09:23
查表的,你可以参考一下FATFS里面有这个转换表,utf转成GBK或反过来
作者: y595906642    时间: 2023-6-2 10:42
gbk2utf2uni.c  gbk2utf2uni.h
作者: fbwcpu    时间: 2024-2-23 09:50
y595906642 发表于 2023-6-2 10:42
gbk2utf2uni.c  gbk2utf2uni.h
(引用自9楼)

文件可以传上来看看不?   论坛站长amo传的那个不是完整的GB2312  ,比如中文的标点符号就没有。https://www.amobbs.com/forum.php ... &highlight=UTF8
作者: kebaojun305    时间: 2024-2-23 11:20
直接使用 UTF8  不就行了
作者: 磊磊映画    时间: 2024-2-23 17:14
gbk-unicode 我有个帖子
作者: Appcat    时间: 2024-2-25 11:38
谁能体会我当年在ATMEGA128上做unicode转GB2312查表转换的心情啊
搁到现在,PC软件基本上都用UTF8了,但是谁还用短信猫呢
原帖子在这里
https://www.amobbs.com/forum.php?mod=viewthread&tid=3669593
但是其中的附件好像没法下载了
作者: yyts    时间: 2024-2-25 13:46
如果你刚好有用fatfs的话,它里面有提供转换的函数
作者: tomzbj    时间: 2024-2-25 14:19
re, gb和unicode互转用查表是常规方案,  查表用fatfs的就行

如果不想用fatfs的, 我这里也做了单独的表, 二进制的, 直接写到mcu flash指定地址即可.




欢迎光临 amobbs.com 阿莫电子技术论坛 (https://www.amobbs.com/) Powered by Discuz! X3.4