编码问题

就想叫yoko 2011-06-20 03:30:28
VC中写
char buf[] = "中国";
使用的编码是在哪看?
记得貌似是在哪个文件中能看到
...全文
93 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
就想叫yoko 2011-06-21
  • 打赏
  • 举报
回复
记得以前有位兄弟在某个文件中看到了 是使用GB2312的
有谁知道吗..
不然结贴了
leegoex 2011-06-20
  • 打赏
  • 举报
回复

int TUnicodeToUtf8(LPCTSTR lpszSrc, char* szBuf, int nSize)

{

int nByte = 0;

#ifdef _UNICODE

nByte = WideCharToMultiByte(CP_UTF8, 0, lpszSrc, -1, NULL, 0, NULL, NULL);

if (nByte > nSize)

nByte = nSize;

return WideCharToMultiByte(CP_UTF8, 0, lpszSrc, -1, szBuf, nByte, NULL, NULL);

#else

//将ANSI字符串转成UNICODE

int nChar = MultiByteToWideChar(CP_ACP, 0, lpszSrc, -1, NULL, 0);

if (nChar==0)

return 0;

WCHAR* pwBuf = new WCHAR[nChar];

MultiByteToWideChar(CP_ACP, 0, lpszSrc, -1, pwBuf, nChar);

//将UNICODE转成UTF8

nByte = WideCharToMultiByte(CP_UTF8, 0, pwBuf, -1, NULL, 0, NULL, NULL);

if (nByte > nSize)

nByte = nSize;

int nResult = WideCharToMultiByte(CP_UTF8, 0, pwBuf, -1, szBuf, nByte, NULL, NULL);

delete[] pwBuf;

return nResult;

#endif

}
zyc_glboy 2011-06-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 luciferisnotsatan 的回复:]
ANSI到utf-8可以直接用系统提供的
WideCharToMultiByte
MultiByteToWideChar

中间要用unicode中转下。系统提供的函数没法直接转
[/Quote]
先用multiByteToWideChar转成unicode再用WideCharToMultiByte转成UTF-8
luciferisnotsatan 2011-06-20
  • 打赏
  • 举报
回复
简体中文windows,ANSI就代表了GB2312
luciferisnotsatan 2011-06-20
  • 打赏
  • 举报
回复
ANSI到utf-8可以直接用系统提供的
WideCharToMultiByte
MultiByteToWideChar

中间要用unicode中转下。系统提供的函数没法直接转
luciferisnotsatan 2011-06-20
  • 打赏
  • 举报
回复
一般是ANSI
就想叫yoko 2011-06-20
  • 打赏
  • 举报
回复
另外谁给我丢一个GB2312转UTF 8的函数
赵4老师 2011-06-20
  • 打赏
  • 举报
回复
用WinHex软件看

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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