刨根问底:C++中宽字符类型(wchar_t)的编码一定是Unicode?长度一定是16位?

本文探讨了C++中宽字符类型wchar_t的编码和长度是否固定的问题。尽管C++ Primer指出wchar_t是Unicode字符且最小尺寸为16位,但根据C++ ISO 2003文档,wchar_t的编码方式和长度实际上由编译器决定,没有统一的标准。wchar_t主要用于存储多种编码的字符,其编码可能是UTF-16或UTF-32,且在不同的编译器下可能有不同的表示方式。
摘要由CSDN通过智能技术生成

问题的起因是和一个朋友讨论不同编码的转换问题,说到了wchar_t的类型,朋友的看法是,wchar_t的编码方式是utf-16,长度一定是16位的。我的看法不同,我认为wchar_t的长度和编码方式都是编译器和平台决定的,和语言没任何关系。

后来这个朋友为了说服我,回家把c++ primer给我搬出来了,还给我截了个图(因为我没这本书),在这本书第30页有个表格,清楚地写着wchar_t是unicode字符,而最小尺寸是16。既然“最小尺寸是16”了,那么其他尺寸的可能性就有了,但是编码方式是怎么回事?因为凭我印象,貌似没有任何文档规定过宽字符的编码方式,我想说服我朋友,但脑子里有没有证据,不知道从何说起,因此回家仔细查了查资料,算是有了个了解。

1. 宽字符的编码方式到底是谁定的?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值