qwerttt 发表于 2024-4-18 13:12:30

printf输出的中文是否GB2312编码?

最近在做海康摄像机的字符叠加,用的是HTTP请求方式

http请求里面body内容是这样
<?xml version="1.0" encoding="UTF-8"?>
<TextOverlayList version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">
    <TextOverlay>
      <id>1</id>
      <enabled>true</enabled>
      <positionX>0</positionX>
      <positionY>528</positionY>
      <displayText>电站: 4412346</displayText>
    </TextOverlay>
    <TextOverlay>
      <id>2</id>
      <enabled>true</enabled>
      <positionX>0</positionX>
      <positionY>496</positionY>
      <displayText>流量:3.321</displayText>
    </TextOverlay>
</TextOverlayList>

里面“电站”两字被转换为HEX格式e7 94 b5 e7 ab 99,并不是GB2312编码

我用在线UTF-8转换“电站”,并不是这个结果

这个xml文本里面中文字是用了什么编码

用printf函数怎样输出这种编码,mdk编译器

airbox 发表于 2024-4-18 13:21:54

<?xml version="1.0" encoding="UTF-8"?>
上面不是写得很清楚?
printf并不会改变原来的文本编码,要改你得先转换编码再调用printf

qwerttt 发表于 2024-4-18 13:39:41

airbox 发表于 2024-4-18 13:21
上面不是写得很清楚?
printf并不会改变原来的文本编码,要改你得先转换编码再调用printf ...
(引用自2楼)

是的,写的是UTF-8
但我用在线UTF-8转换电站两字,不是e7 94 b5 e7 ab 99

vtte 发表于 2024-4-18 13:48:45

不用那么纠结,你把你的.c文件或.h文件用utf8保存,出来的自然就是utf8了。

Himem 发表于 2024-4-18 13:59:22

初音之恋 发表于 2024-4-18 14:04:12

qwerttt 发表于 2024-4-18 13:39
是的,写的是UTF-8
但我用在线UTF-8转换电站两字,不是e7 94 b5 e7 ab 99
(引用自3楼)

文件编码格式修改为utf-8,你肯定是转错了,utf-8就是这个值

qwerttt 发表于 2024-4-18 14:12:26

初音之恋 发表于 2024-4-18 14:04
文件编码格式修改为utf-8,你肯定是转错了,utf-8就是这个值
(引用自6楼)

我看网上那些UTF-8转换工具都是&#x7535;&#x7AD9;
7535 7AD9
所以就不知道哪个是对了

Himem 发表于 2024-4-18 14:15:42

本帖最后由 Himem 于 2024-4-18 14:18 编辑

qwerttt 发表于 2024-4-18 14:12
我看网上那些UTF-8转换工具都是&#x7535;&#x7AD9;
7535 7AD9
所以就不知道哪个是对了 ...
(引用自7楼)

这是utf16

https://www.toolhelper.cn/EncodeDecode/EncodeDecode

qwerttt 发表于 2024-4-18 14:31:57

Himem 发表于 2024-4-18 14:15
这是utf16

https://www.toolhelper.cn/EncodeDecode/EncodeDecode
(引用自8楼)

多谢,TKS
页: [1]
查看完整版本: printf输出的中文是否GB2312编码?