hhhhhhhaa 发表于 2018-8-24 15:30:04

我知道为什么不能输出汉字了,在keil里的中文是UTF-8的编码格式,一个汉字用16进制表示的话是三个举个例子吧
比如汉字“大”按照unicode转utf-8的编码规则,汉字使用3字节序列
所以套用三字节转换公式
0800 - FFFF
1110xxxx 10xxxxxx 10xxxxxx
其中用x代表的16位使用unicode相应的位来填充
0x5927转换为2进制0101 1001 0010 0111
填充到上面公式中的x中变成
11100101 10100100 10100111
用16进制表示为E5 A4 A7
而大的AIISC码用16进制表示的话就是B4F3
串口调试助手只能把AIISC码格式的16进制转换成汉字,不能把UTF-8类型的16进制汉字转换出来,所以才出现了乱码的现象

hhhhhhhaa 发表于 2018-8-24 15:31:01

ls164013 发表于 2018-8-24 15:27
第一次用这个 复制粘贴 出了点意外

加个QQ吧 1561648283
聊聊你怎么发中文的

hhhhhhhaa 发表于 2018-8-24 16:33:13

ls164013 发表于 2018-8-24 15:14
自己写一个printf输出函数,串口就可以打印中文了

你试试看啊

feixiang20 发表于 2018-8-24 23:19:51

确认你的编码格式

JuSTDol 发表于 2018-8-25 07:05:19

可以用友善串口调试助手,没测试过Unicode能否显示,但是界面比这些都优美些。

stm1024 发表于 2018-8-25 08:21:03

你要换一个串口通讯的软件

hhhhhhhaa 发表于 2018-9-3 13:07:04

feixiang20 发表于 2018-8-24 23:19
确认你的编码格式

编码格式没有问题,就是编译的时候应该是出的问题

hhhhhhhaa 发表于 2018-9-3 13:07:24

stm1024 发表于 2018-8-25 08:21
你要换一个串口通讯的软件

跟串口通讯软件没有任何关系

hhhhhhhaa 发表于 2018-9-3 13:07:44

JuSTDol 发表于 2018-8-25 07:05
可以用友善串口调试助手,没测试过Unicode能否显示,但是界面比这些都优美些。 ...

串口助手没有任何关系

stm1024 发表于 2018-9-3 14:03:50

hhhhhhhaa 发表于 2018-9-3 13:07
跟串口通讯软件没有任何关系

把你发送的字符串和接收到的字节发出来,我看看
页: 1 [2] 3
查看完整版本: stm32f103 串口通讯 printf 输出中文的问题