栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

多字节字符vs宽字符

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

多字节字符vs宽字符

多字节字符vs宽字符
  • 一、多字节字符(multibyte)
  • 二、宽字符(Wide-Character)
  • 三、使用范围
  • 四、wchar_t
  • 五、字符转换
  • 六、源文件字符集、运行字符集

一、多字节字符(multibyte)
  • 定义:字符所用的字节个数是可变的,一个1字节字符后面可以跟着一个3字节字符。(比如中国象形文字)

备注:也有人称多字节字符为窄字符。但是《c++标准程序库》中称为多字节字符,我们沿用书中多字节的说法。

二、宽字符(Wide-Character)
  • 定义:字符所用的字节数(byte)恒定,与所表示的字符无关。
  • 典型的个数是2或4个字节。
  • 这和只使用1字节的表示法(例如ASCII),没有区别。

备注:也有文章中说,ASCII即无所谓宽字节和多字节。

三、使用范围
  • 多字节字符表示法比宽字符更紧凑,因此,多字节字符表示法常用来在程序外部存储数据;
  • 宽字符表示法比较容易处理固定大小的字符,所以通常在程序内部使用。
四、wchar_t

ISO C++使用wchar_t表示宽字符,在c++中wchar_t已被扶正为关键词。

五、字符转换

Class template codecvt用来在不同的字符编码方案之间进行转换
备注:未来再写

六、源文件字符集、运行字符集

这个区分的文章不是太多,但是我们要明白。

  • 源文件字符集:源文件存储采用的字符集。
    (eg.cpp文件的存储。如果按照《c++标准程序库》中多字节字符和宽字节字符的建议,源文件字符集应该采用多字节字符表示法较合理)
  • 运行字符集:程序运行过程中采用的字符集。
    (程序运行过程数据的输出等。如果按照《c++标准程序库》中多字节字符和宽字节字符的建议,运行字符集应该采用宽字符表示法较合理)

这个简要再多说2点,后面博客会详细介绍

  • 1、vs2017等建立的源文件采用的是Unicode字符集,utf-8的编码。后面文章给大家介绍。
  • 2、一般来说,源文件字符集和运行字符集一般是一致的。(当然你也可以设置为不同的)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/893356.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号