UTF8 ANSI 相互转换的函数
2013-03-20 22:59
337 查看
#include <winnls.h> #include <malloc.h> LPCSTR AnsiToUtf8(LPCSTR Ansi) { int WLength = MultiByteToWideChar(CP_ACP, 0, Ansi, -1, NULL, 0); LPWSTR pszW = (LPWSTR) _alloca((WLength+1) * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, Ansi, -1, pszW, WLength); int ALength = WideCharToMultiByte(CP_UTF8, 0, pszW, -1, NULL, 0, NULL, NULL); LPSTR pszA = (LPSTR)_alloca( ALength + 1); WideCharToMultiByte(CP_UTF8, 0, pszW, -1, pszA, ALength, NULL, NULL); pszA[ALength] = 0; return pszA; } LPCSTR WcharToUtf8(LPCWSTR szUnicode) { int ALength = WideCharToMultiByte(CP_UTF8, 0, szUnicode, -1, NULL, 0, NULL, NULL); LPSTR pszA = (LPSTR)_alloca( ALength + 1); WideCharToMultiByte(CP_UTF8, 0, szUnicode, -1, pszA, ALength, NULL, NULL); pszA[ALength] = 0; return pszA; } LPCSTR Utf8toAnsi( LPCSTR utf8 ) { int WLength = MultiByteToWideChar(CP_UTF8, 0, utf8, -1, NULL, NULL ); LPWSTR pszW = (LPWSTR) _alloca( (WLength + 1) *sizeof(WCHAR) ) ; MultiByteToWideChar(CP_UTF8, 0, utf8, -1, pszW, WLength ); pszW[WLength] = 0; int ALength = WideCharToMultiByte(CP_ACP, 0, pszW, -1, NULL, 0, NULL, NULL); LPSTR pszA = ( LPSTR ) _alloca ( ALength + 1 ); WideCharToMultiByte(CP_ACP, 0, pszW, -1, pszA, ALength, NULL, NULL); pszA[ALength] = 0; return pszA; } LPCWSTR Utf8toWchar( LPCSTR utf8 ) { int WLength = MultiByteToWideChar(CP_UTF8, 0, utf8, -1, NULL, NULL ); LPWSTR pszW = (LPWSTR) _alloca( (WLength + 1) *sizeof(WCHAR) ) ; MultiByteToWideChar(CP_UTF8, 0, utf8, -1, pszW, WLength ); pszW[WLength] = 0; return pszW; }
相关文章推荐
- UTF8 ANSI 相互转换的函数
- UTF8 ANSI 相互转换的函数
- ANSI, UNICODE与UTF8相互转换模板类
- ANSI、UTF8、UNICODE 相互转换
- 转载 ANSI、Unicode、UTF8相互转化的函数
- ANSI、Unicode、UTF8相互转化的函数
- UTF8与GBK字符编码之间的相互转换
- unicode、utf-8、ansi的故事及其相互转换
- utf8与ansi之间的转换
- GBK和UTF8编码之间互相转换的两个函数
- sqlite中文乱码问题原因分析及解决(utf8和ascii相互转换)
- gb2312和utf8相互转换:
- 一个比较方便的转换NSString为UTF8编码的函数
- void*和类成员函数指针的相互转换
- 一些工具函数--object 于 DataTable 相互转换
- Ansi、Unicode、UTF8字符串之间的转换和写入文本文件
- ANSI与UTF8之间的转换!std::string与UTF8之间的转换
- php自定义函数实现汉字转换utf8编码的方法
- C/C++ 各种字符编码字符串的转换 可用于XML文件的字符转化读写 (收集 GBK - UTF8 - Unicode - ANSI )
- C++中Ansi、Unicode、UTF8字符串之间的转换和写入