char* 与 TCHAR* 存同样的中文,在内存中的值不同,是什么原因

szn_409 2015-11-16 08:45:18
在定义了 UNICODE 的情况下
char* szn = "是真难"; 内存值为ca c7 d5 e6 c4 d1 00
TCHAR* tszn = _T("是真难"); 内存值为 2f 661f 77 be 96 00 00
环境为vs2010

我想知道char* 的编码方式是什么, 是如何存储中文字符的
谢谢
...全文
87 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2015-11-17
  • 打赏
  • 举报
回复
GBK
「已注销」 2015-11-17
  • 打赏
  • 举报
回复
TCHAR 是一个不确定类型,取决于你项目设置为何种编码。 TCHAR 可能是 char 或 WCHAR。而 VS 现在的版本工程默认编码都是 Unicode,即 WCHAR。
paschen 2015-11-16
  • 打赏
  • 举报
回复
在Unicode编码下 TCHAR是wchar_t 在多字节下是char
fefe82 2015-11-16
  • 打赏
  • 举报
回复
应该说是字符串常量的编码是什么。 这个与操作系统、编译器都有关。 中文 Windows 系统下使用 Visual Studio 提供的编译器的话,普通字符串常量的编码通常是 GBK。宽字符串(L“是真难") 的编码是 utf-16 。 _T("xxx") 在定义了 UNICODE 的情况下会被解释成 L"xxx" (宽字符串)

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧