c++ 如何知道当前字符串的编码类型

请教一下,一直没弄明白,我写一个c程序,前台打印显示中文字,如:stringspt="世界";cout<<spt;正常显示中文结果,但不清楚这个时候字符串的编码格式是什么... 请教一下,一直没弄明白,我写一个c程序,前台打印显示中文字,如:
string spt="世界";
cout<<spt;
正常显示中文结果,但不清楚这个时候字符串的编码格式是什么?还有,编码不是都是二进制存储或者十六进制吗?为什么到前台显示,有些编码就能是中文,有些就是保持进制的形式,或者有什么文章推荐给我看看理解一下,谢谢!
展开
 我来答
zhccsd
推荐于2017-10-09 · TA获得超过4042个赞
知道大有可为答主
回答量:1347
采纳率:66%
帮助的人:961万
展开全部
编程中遇到的编码一共两种,单字节和多字节,各种字符串类,宏的本质要么是char*,要么是wchar_t *
char*基础单位是一个字节,如果用来储存中文那么每个中文会占用2个字节,也就是两个基础单位
wchar_t*基础单位是2字节,如果用来储存中文那么每个文字只要1个单位就可以了,但本质上还是用了2个字节
可以看一下string类的基础单位是char*,wstring的基础单位是wchar_t*,同理还有CStringA是char*,CStringW是wchar_t*,另外还有各种宏
LPSTR: char *
LPCSTR: const char *
LPWSTR: wchar_t *
LPCWSTR: const wchar_t *
LPTSTR: TCHAR *
LPCTSTR: const TCHAR *

至于编码格式,其实这些字符本质是用整数,比如数字‘0’对应48,这是一套国际标准,所有的电脑都知道某个整数对应的字符内容
这个跟进制没关系,在内存中数据确实是以2进制储存的,但是相比之下110000对应字符‘0’和48对应字符‘0’人们更容易接受后者,他们本质上是一个概念
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式