请教:中文转UNICODE

blude 2010-04-02 11:29:21
本人才开始学习C++,想知道怎样把中文转成UNICODE编码格式,本人用的是DEV C++,想用标准C++来实现,不要用MFC,谁给段代码?
比如把:中国
转换为:0x4E2D 0x56FD
只要代码通过再加分。
...全文
129 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
白云飘飘飘 2010-04-03
  • 打赏
  • 举报
回复
	setlocale(LC_ALL,"chs");
const char *str="中国";
wchar_t wcs[10];
mbstate_t mbt={0};
const char *p=str;
mbsrtowcs(wcs,&p,strlen(str)+1,&mbt);

for(wchar_t *p=wcs;*p!=0;p++)
printf("%X\n",(unsigned short)*p);
白云飘飘飘 2010-04-03
  • 打赏
  • 举报
回复
如果不借助系统的功能,需要中文与Unicode编码对照表
cattycat 2010-04-03
  • 打赏
  • 举报
回复
用MultiByteToWideChar函数,这个是windows的api,在dev中也能用
wchar_t* AnsiToUnicode(const char* buf)
{
int len = ::MultiByteToWideChar(CP_ACP, 0, buf, -1, NULL, 0);
if (len == 0) return L"";

wchar_t* wch=new wchar_t[len];
memset(wch,0,len);
::MultiByteToWideChar(CP_ACP, 0, buf, -1, wch, len);

return wch;
}
耍宝王 2010-04-03
  • 打赏
  • 举报
回复
不知道LZ是不是打印UNICODE字符编码这个意思
#include <iostream>
using namespace std;

int main()
{
wchar_t wstr[] = L"中国";
cout << showbase << hex;//指定输出格式:showbase显示0x,hex十六进制显示

for(int i = 0; wstr[i]; ++i)
cout << (unsigned short)wstr[i] << endl;

return 0;
}

要使DEV C++(g++)能正确读取宽字符( L"中国"),需要将源代码的文本格式设定为:UTF-8 编码格式
feifanup 2010-04-03
  • 打赏
  • 举报
回复
中文 和 UNICODE不是一个层次上的概念啊
unicode是字符集, utf8是编码方式, 你说的中文是说语言页,还是什么
所谓的中文是怎么存储的?
jackyjkchen 2010-04-02
  • 打赏
  • 举报
回复
dev也能用Windows api,用MultiByteToWideChar
blude 2010-04-02
  • 打赏
  • 举报
回复
-_-!!俺是新手, 只希望能在DEV C++里能用。
jbz001 2010-04-02
  • 打赏
  • 举报
回复
标准C++好像支持的是ANSI?

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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