printf函数将字符串打印到控制台上的编解码问题

来源:9-10 宽字符串与窄字符串的转换

wxz123

2021-01-31

老师,最近问题有点多哈 〒▽〒
1、使用printf函数将字符串打印到控制台上,是不是就是printf函数把字符串encoding成字节存到内存中,控制台再将内存中的字节decoding成字符串打印出来的过程,这么理解对吗?
2、printf的encoding方式是和编译器有关吗?比如,msvc中的printf函数的encoding方式是gbk,mingw中的printf函数的encoding方式是utf8?
3、控制台的decoding方式和啥有关呢?是和操作系统有关吗,windows为gbk,linux为utf8这样?
4、控制台的decoding方式该怎么改呢?

写回答

4回答

bennyhuo

2021-02-01

问题多不怕,回头给个好评就成( ͡° ͜ʖ ͡°)✧

1. printf 打印的已经是编码之后的字符串了,char * 是已经编码过的,控制台显示确实会再解码

0
2
bennyhuo
回复
wxz123
哈哈哈~~多谢
2021-02-01
共2条回复

bennyhuo

2021-02-01

4. 这问题问google。

0
0

bennyhuo

2021-02-01

3. 默认如此,可以设置,windows好像命令是 chcp,你搜搜

0
0

bennyhuo

2021-02-01

2. 不是问题

0
0

C语言系统化精讲 重塑编程思想 打造坚实的开发基础

如果通向大牛的道路有捷径,那就是先学好C语言

2208 学习 · 853 问题

查看课程