编码问题

就想叫yoko 2011-06-20 03:30:28
VC中写
char buf[] = "中国";
使用的编码是在哪看?
记得貌似是在哪个文件中能看到
...全文
52 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
就想叫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
回复
简体中文windows,ANSI就代表了GB2312
回复
ANSI到utf-8可以直接用系统提供的
WideCharToMultiByte
MultiByteToWideChar

中间要用unicode中转下。系统提供的函数没法直接转
回复
一般是ANSI
回复
就想叫yoko 2011-06-20
另外谁给我丢一个GB2312转UTF 8的函数
回复
赵4老师 2011-06-20
用WinHex软件看
回复
相关推荐
发帖
其它技术问题
创建于2007-09-28

3849

社区成员

C/C++ 其它技术问题
申请成为版主
帖子事件
创建了帖子
2011-06-20 03:30
社区公告
暂无公告