IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 符号编码与乱码问题 -> 正文阅读

[C++知识库]符号编码与乱码问题

目标:解释符号与编码,分析乱码问题,于是就能明明白白地处理大多数符号乱码问题了。

符号与编码

以C++为例,

  • 符号A的(十进制)编码为65。即'A'为65。其中,A亦为字面值。ASCII包含以其他扩展编码中,A属于ASCII码。
  • 符号回车<CR>的ASCII为13。其中,<CR>无字面值,故通过数字转义序列'0x0D'或符号转义序列\n表示。
    符号与编码的查询网址:[汉字字符集编码查询]

unicode [-]

Unicode其实不是一种编码, 而是定义了一个表, 表中为世界上每种语言中的每个字符设定了统一并且唯一的码位 (code point),以满足跨语言、跨平台进行文本转换的要求。
如果一个人想写不同的语言,那他最好使用Unicode。 Unicode 用多少个字节呢?0个

编码字符集

从信息论知,编码有定长编码和可变长编码:[-]

  • gbk: 显示中文,的长度为2个字节
  • utf-8:包含全世界所有国家需要用的字符,它比较灵活,长度在1-6个字节
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rEx6Fvlw-1653107691013)(:/597c0a5797e9424686ffa05f0ec33a6b)]
    字,Unicode编码是0x6C49,查utf-8表知,字符长度为3。即:std::cout <<sizeof("汉") << std::endl;显示4

常用应用编码设置

只有撰写和显示都基于相同的编码,那么就不会乱码。
而复制粘贴时,内容会在剪切板进行中转[-],即复制端到剪切板会变为统一编码,剪切板到粘贴端再重新转为特定编码。而对于比较老的软件,比如Keil和VC6.0,这一转换过程无法自动实现,那么就需要sublime等工具进行手动转换了。而VScode则不会出现复制粘贴的乱码问题,除非问题中已经存在乱码。

撰写端

这里的撰写端指的是首要目的是将符号以特定编码输入到文件的应用,例如文本编码器或IDE。因为要边写边看,所以其自然也带有显示功能。

从notepad++开始

输入法与文件编码的关系:一个文件首先确认其编码类型A,将以编码类型A来显示字符,同时输入法自动以A编码将字符输入到文件中。此时,
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-72MCZbIZ-1653107691014)(:/9e0783ad6d274323ae754d2b8f41d092)]

  • 若使用编码B,那么文件的存储信息并未改变,而是以编码B的方式进行显示(即映射),这样看到的中文字符就变乱码了。同时,后续输入法将自动输入编码B
  • 若转为编码B,那么文件的存储信息将改变,此时显示和文件存储信息皆应用了编码B

vscode

详见[CSDN-牛肉粉面:VScode修改文件默认编码]

  • 单一文件设置(高优先级,但关闭文件后不保存设置):点击VScode下方的编码
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3JmpLgQc-1653107691015)(:/22b8422014f2463c8c33acee6990f5c4)]
  • settings .json(中优先级):如下设置后,将有限适用UTF-8撰写和显示文件,但当系统认为有更合适的编码时,将自动选择该编码。
    "files.encoding": "utf8",
    "files.autoGuessEncoding": true,
  • 全局设置(低优先级): Ctrl+Shift+POpen Settings(UI)encoding→选择编码

sublime

更好用的编码转换软件

浏览器

编码与浏览器本身无关,与网址有关。
百度搜索编码的格式与国际上面其他搜索的格式有所不同,比如google搜索的是UTF-8,但是百度使用的是GB2312编码。

显示端

cmd

[CSDN-永久修改cmd命令窗口的编码格式]
查询:chcp
修改:chcp <codeid>

code idcode type
65001utf-8
20936GB2312
936GBK(default)
437American English
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-27 17:12:03  更:2022-05-27 17:13:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/14 1:06:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码