C++ Unicode与UTF_8 编码转换
来源:互联网 发布:手机淘宝中评可以改吗 编辑:程序博客网 时间:2024/05/17 11:33
void UTF_8ToUnicode(wchar_t* pOut,char *pText){ char* uchar = (char *)pOut; uchar[1] = ((pText[0] & 0x0F) << 4) + ((pText[1] >> 2) & 0x0F); uchar[0] = ((pText[1] & 0x03) << 6) + (pText[2] & 0x3F);}void UnicodeToUTF_8(char* pOut,wchar_t* pText){ // 注意 WCHAR高低字的顺序,低字节在前,高字节在后 char* pchar = (char *)pText; pOut[0] = (0xE0 | ((pchar[1] & 0xF0) >> 4)); pOut[1] = (0x80 | ((pchar[1] & 0x0F) << 2)) + ((pchar[0] & 0xC0) >> 6); pOut[2] = (0x80 | (pchar[0] & 0x3F));}
出处:
http://www.360doc.com/content/13/0114/20/7023119_260175036.shtml
以上代码只能转换第一个宽字符,要转换全部可以加一个循环,如下:
string UnicodeToUTF_8(wchar_t* pText){ // 注意 WCHAR高低字的顺序,低字节在前,高字节在后 string str; char* pOut = new char[4]; memset(pOut, 0, 4); for (int i = 0; i < wcslen(pText); i ++) { char* pchar = (char *)&pText[i]; pOut[0] = (0xE0 | ((pchar[1] & 0xF0) >> 4)); pOut[1] = (0x80 | ((pchar[1] & 0x0F) << 2)) +((pchar[0] & 0xC0) >> 6); pOut[2] = (0x80 | (pchar[0] & 0x3F)); str += pOut; } return str;}
还可以使用 iconv库。
0 0
- C++ Unicode与UTF_8 编码转换
- utf_8与GB2312编码的转换
- GB2312、UTF_8、UNICODE之间相互转换
- c++国标与UTF_8的转换
- 字符串与UTF_8的相互转换
- UTF_8 与 ASCII之间的转换
- unicode编码转换成汉字(c#)
- gb与unicode编码的转换
- 实现unicode与gb2312编码转换!
- 中文与 Unicode 编码的相互转换
- UTF-8 与UniCode 编码转换
- Unicode 与 ANSI 的编码转换
- ANSI与Unicode之间的编码转换
- ANSI与Unicode之间的编码转换
- 字符串与Unicode编码互相转换
- Unicode编码与中文的转换
- gbk转换到utf_8
- UCS-2与UTF8之间的选择(2)--Unicode组织提供的C/C++的Unicode编码转换函数
- hibernate jdbc
- iOS关闭手势返回功能
- 恐怖谷理论的陷阱
- Android动画4-Interpolator常用模式
- IOCP模型与网络编程
- C++ Unicode与UTF_8 编码转换
- 数据库入门
- 自我介绍
- runtime
- 大数据面试宝典
- 实用知识:UIButton 图片在上文字在下
- 异常处理
- OpenCV区域提取之使用鼠标进行区域提取!
- 观《一个也不能少》后感