关于C++解析utf-8字符流的转换
来源:互联网 发布:淘宝店铺店招怎么制作 编辑:程序博客网 时间:2024/05/22 03:20
部分摘自:http://topic.csdn.net/u/20101013/21/372669f3-323e-42bb-ae2d-776d46aae45b.html
@ Loaden
如果你本地程序是UNICODE编码的话,你需要先转换到ANSI,再从ANSI转换到UNICODE。
- C/C++ code
- #include <windows.h>#include <iostream>#include <vector>using namespace std;std::wstring UT2WC(const char* buf){ int len = MultiByteToWideChar(CP_UTF8, 0, buf, -1, NULL, 0); std::vector<wchar_t> unicode(len); MultiByteToWideChar(CP_UTF8, 0, buf, -1, &unicode[0], len); return std::wstring(&unicode[0]);}std::string WC2UT(const wchar_t* buf){ int len = WideCharToMultiByte(CP_UTF8, 0, buf, -1, NULL, 0, NULL, NULL); std::vector<char> utf8(len); WideCharToMultiByte(CP_UTF8, 0, buf, -1, &utf8[0], len, NULL, NULL); return std::string(&utf8[0]);}std::wstring MB2WC(const char* buf){ int len = MultiByteToWideChar(CP_ACP, 0, buf, -1, NULL, 0); std::vector<wchar_t> unicode(len); MultiByteToWideChar(CP_ACP, 0, buf, -1, &unicode[0], len); return std::wstring(&unicode[0]);}std::string WC2MB(const wchar_t* buf){ int len = WideCharToMultiByte(CP_ACP, 0, buf, -1, NULL, 0, NULL, NULL); std::vector<char> utf8(len); WideCharToMultiByte(CP_ACP, 0, buf, -1, &utf8[0], len, NULL, NULL); return std::string(&utf8[0]);}int main(){ setlocale(LC_ALL, ""); const wchar_t* s1 = L"UNICODE转换成UTF-8"; cout << WC2UT(s1).c_str() << endl; const char* s2 = "ANSI转换成UNICODE"; wcout << MB2WC(s2).c_str() << endl; const wchar_t* s3 = L"UNICODE转换成ANSI"; cout << WC2MB(s3).c_str() << endl; return 0;}
- 关于C++解析utf-8字符流的转换
- 【C++】UTF-8字符和GB2312字符相互转换函数
- utf-8字符转换
- 字符转换成UTF-8
- 关于GB2312与UTF-8的转换
- c语言中关于utf-8编码转换为gb2312的问题
- 字符gbk转换为utf-8的sublime插件
- 字符编码Unicode UTF-8 GBK的不同和转换
- C++:UTF-8、UTF-16、UTF-32之间的编码转换
- C#:UTF-8、UTF-16、UTF-32之间的编码转换
- C++:UTF-8、UTF-16、UTF-32之间的编码转换
- 关于iconv('gbk', 'utf-8',$str)会调失字符的原因
- rf中解析utf-8格式的中文转换
- GBK和UTF-8转换的实现(C/C++)
- UTF-8与本地字符转换
- IO流-转换流的字符编码转换-ISO-8859-1和utf-8和GBK互转
- 日期转换工具以及常用的字符,产生随机数,将java流中的编码转换为utf-8----java
- 关于JAVA字符编码:Unicode,ISO-8859-1,GBK,UTF-8编码及相互转换
- 【批处理+VBS】实现开机启动程序,实时监控,程序关闭,关闭系统
- WebLogic和Tomcat的区别
- Oracle内存结构总表
- CListCtrl::InsertColumn出错Debug Assertion Failed
- 贴片保险丝如何选型?
- 关于C++解析utf-8字符流的转换
- 中国下一代广播电视网(NGB)100问
- 点评 Firefox 导入 IE Cookie 的代码
- php过滤HTML代码
- Linux学习笔记
- poj1308 Is It A Tree?
- c# 鼠标中键上下滚动的判断
- ASP和JSP
- 如何开展灰盒测试[0]:概述