只包含中英文的UTF-8与Unicode的转换(不支持其它语言)
2008-07-15 16:05
405 查看
1.UTF8转Unicode
// 把UTF-8转换成Unicode void UTF_8ToUnicode(char *pIn,TCHAR* pOut) { char* uchar = (char *)pOut; uchar[1] = ((pIn[0] & 0x0F) << 4) + ((pIn[1] >> 2) & 0x0F); uchar[0] = ((pIn[1] & 0x03) << 6) + (pIn[2] & 0x3F); return; } void UTF8_UNICODE(char *lpIn, int nLen, TCHAR *lpOut) { int i = 0; int j = 0; while( i < nLen ) { WCHAR unicode = 0; if( lpIn[i] > 0 ) { *((char *)&unicode) = lpIn[i++]; } else { UTF_8ToUnicode(lpIn + i,&unicode); i += 3; } lpOut[j++] = unicode; } lpOut[j] = L'/0'; } [code]2.Unicode转UTF-8
void UnicodeToUTF_8(TCHAR* pIn,char*pOut) { char* pchar = (char *)pIn; pOut[0] = (0xE0 | ((pchar[1] & 0xF0) >> 4)); pOut[1] = (0x80 | ((pchar[1] & 0x0F) << 2)) + ((pchar[0] & 0xC0) >> 6); pOut[2] = (0x80 | (pchar[0] & 0x3F)); } void UNICODE_UTF8(TCHAR* lpIn,int nLen,char* lpOut) { int i = 0; int j = 0; while(i < nLen) { if(*(lpIn+i)>127) { UnicodeToUTF_8(lpIn + i,lpOut + j); j+=3; } else { *(lpOut+j) = (char)*(lpIn+i); j++; } i++; } lpOut[j+1] = 0; } [code]
相关文章推荐
- UTF-8到acsii的转换(让自己的C++程序支持多语言)
- UTF-8到acsii的转换(让自己的C++程序支持多语言)
- php 字符编码转换类,支持ANSI、Unicode、Unicode big endian、UTF-8、UTF-8+Bom 互相转换
- UTF-8到acsii的转换(让自己的C++程序支持多语言)
- 各个系统和语言对Unicode的支持 字符集和编码——Unicode(UTF&UCS)深度历险
- 多字节与UTF-8、Unicode之间的转换 .
- JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换
- Linux下从unicode到UTF-8的转换,含实例
- Office 2010提示:您正试图运行的函数包含有宏或需要宏语言支持的内容的解决方法
- utf-8支持多国语言,GB2312支持简体中文的。
- UTF-8与UNICODE的关系及代码转换
- 多字节、UTF-8、Unicode之间的转换
- 字符集之间转换(UTF-8,UNICODE,Gb2312) c++
- 汉字编码(【Unicode】 【UTF-8】 【Unicode与UTF-8之间的转换】 【汉字 Unicode 编码范围】【中文标点Unicode码】【GBK编码】【批量获取汉字UNICODE码】)
- utf-8、unicode 、nsstring转换
- 【JAVA编码】 JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换
- 字符集之间转换(UTF-8,UNICODE,Gb2312)
- 多字节与UTF-8、Unicode之间的转换
- 多字节与UTF-8、Unicode之间的转换