fbwcpu 发表于 2023-6-1 17:46:35

设备返回到时UTF8字符,如何转换为GB2312字符?

设备返回到时UTF8字符数据流,如何转换为对应的GB2312字符?   是有公式换算 还是查表?用过的朋友讲解哈!{:smile:}

yyts 发表于 2023-6-1 18:33:20

没有公式,查表。

wxws 发表于 2023-6-1 18:34:38

单片机干这累的。pc或linux 就简单了

t3486784401 发表于 2023-6-1 19:14:12

就是查表。utf8到unicode还能有公式,但再到2312就一定是查表了。

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

fbwcpu 发表于 2023-6-1 21:58:16

t3486784401 发表于 2023-6-1 19:14
就是查表。utf8到unicode还能有公式,但再到2312就一定是查表了。

反正都要查表,直接一步utf8查到2312最 ...
(引用自4楼)

啥表,能直接UTF8到GB2312?

t3486784401 发表于 2023-6-1 22:09:44

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:33

本帖最后由 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:32

查表的,你可以参考一下FATFS里面有这个转换表,utf转成GBK或反过来

y595906642 发表于 2023-6-2 10:42:01

gbk2utf2uni.cgbk2utf2uni.h

fbwcpu 发表于 2024-2-23 09:50:14

y595906642 发表于 2023-6-2 10:42
gbk2utf2uni.cgbk2utf2uni.h
(引用自9楼)

文件可以传上来看看不?   论坛站长amo传的那个不是完整的GB2312,比如中文的标点符号就没有。https://www.amobbs.com/forum.php?mod=viewthread&tid=5777116&highlight=UTF8

kebaojun305 发表于 2024-2-23 11:20:03

直接使用 UTF8不就行了{:titter:}

磊磊映画 发表于 2024-2-23 17:14:09

gbk-unicode 我有个帖子

Appcat 发表于 2024-2-25 11:38:18

谁能体会我当年在ATMEGA128上做unicode转GB2312查表转换的心情啊{:cry:}
搁到现在,PC软件基本上都用UTF8了,但是谁还用短信猫呢
原帖子在这里
https://www.amobbs.com/forum.php?mod=viewthread&tid=3669593
但是其中的附件好像没法下载了

yyts 发表于 2024-2-25 13:46:54

如果你刚好有用fatfs的话,它里面有提供转换的函数

tomzbj 发表于 2024-2-25 14:19:20

re, gb和unicode互转用查表是常规方案,查表用fatfs的就行

如果不想用fatfs的, 我这里也做了单独的表, 二进制的, 直接写到mcu flash指定地址即可.
页: [1]
查看完整版本: 设备返回到时UTF8字符,如何转换为GB2312字符?