编码系列

C语言字符编码

  • C程序在windows控制台中的输入输出
    • 阐述程序在执行环境中字符编码的过程

  • 1.用户键入拼音nihao,
    • 输入法根据用户输入的拼音,
    • 给出字符候选列表
  • 2.用户阅读完候选列表后从中选“你好”
  • 3.输入法询问当前与输入法关联的程序(windows控制台)的输入编码格式,得到特定的一种编码格式
    • 设gbk
  • 4.输入法将字符串“你好”用gbk方式编码,得到“你好”的二进制码
  • 5.输入法将得到的二进制码放在标准输入流中

  • (以上5点的阐述或许不够详尽,不准确
  • 如果你并不是在编写一个输入法,那你完全可以认为当你输入时,你的计算机会严格按照以上5个步骤执行相关操作,
  • 即使当你输入时内部的代码实现极其复杂,这在大多数情况下对于我们而言都可以视作透明的,不会对我们编写的程序产生任何影响)

  • 6.用户此时调用标准输入函数

    • 函数将标准输入流中上一步放入的二进制码取出,
    • 原原本本存到用户指定的数组
  • 7 又调标准输出,将上一步中存到数组中的内容输出

  • 8.标准输出将数组中的二进制码复制到标准输出流

    • 并通过某种方式通知windows控制台输出
  • 9.windows控制台接到通知后把上一步中放入标准输出流中的二进制码取出

    • 查询windows控制台自身的输出编码格式
    • 设utf-8
  • 10.windows控制台使用查询到的编码方式解读二进制码,

    • 并将解读的结果打印在屏幕
  • (从windows控制台成功解读二进制码到解读的结果被打印在屏幕上,这期间经历了一些复杂代码,

    • 不需要关心这期间发生了什么,这些复杂的代码实现不会对我们编写的程序产生任何影响)

  • 二进制码是“你好”通过gbk编码。

  • windows控制台却使用utf-8编码方式来解读这个二进制码,

    • 可能解读出一些奇怪的字符(乱码)。
    • 此时应调整windows控制台的输出编码格式为gbk
    1. C中,SetConsoleCP()调整windows控制台的输入编码格式,
  • SetConsoleOutputCP()函数用于调整windows控制台的输出编码格式

和你没完!

canci

ANSI是什么编码?

原来控制台还有编码方式啊?

看到当前代码页没有,结果是GBK编码!

没想到控制台还可以有这么多属性啊!

canci

每打开一个cmd都自动执行一个命令

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor

  • 只需要在注册表中右键新建一个字符串啥的巴巴!
  • 然后每次新开一个cmd,你会发现都在D:盘啊哈哈哈!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fgh431

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值