1. 程式人生 > >windows下utf-8和unicode的相互轉換

windows下utf-8和unicode的相互轉換

#include "windows.h"

char* QXUtf82Unicode(const char* utf, size_t *unicode_number)
{
	if(!utf || !strlen(utf))
	{
		*unicode_number = 0;
		return NULL;
	}
	int dwUnicodeLen = MultiByteToWideChar(CP_UTF8,0,utf,-1,NULL,0);
	size_t num = dwUnicodeLen*sizeof(wchar_t);
	wchar_t *pwText = (wchar_t*)malloc(num);
	memset(pwText,0,num);
	MultiByteToWideChar(CP_UTF8,0,utf,-1,pwText,dwUnicodeLen);
	*unicode_number = dwUnicodeLen - 1;
	return (char*)pwText;
}

char* QXUnicode2Utf8(const char* unicode)
{
	int len;
	len = WideCharToMultiByte(CP_UTF8, 0, (const wchar_t*)unicode, -1, NULL, 0, NULL, NULL);
	char *szUtf8 = (char*)malloc(len + 1);
	memset(szUtf8, 0, len + 1);
	WideCharToMultiByte(CP_UTF8, 0, (const wchar_t*)unicode, -1, szUtf8, len, NULL,NULL);
	return szUtf8;
}




相關推薦

windowsutf-8unicode相互轉換

#include "windows.h" char* QXUtf82Unicode(const char* utf, size_t *unicode_number) { if(!utf || !strlen(utf)) { *unicode_number =

多位元組、UTF-8Unicode之間的轉換

// 多位元組編碼轉為UTF8編碼 bool MBToUTF8(vector<char>& pu8, const char* pmb, int32 mLen) { // convert an MBCS string to widechar int32 nLe

utf-8Unicode的區別

shu 中國人 gbk sci 都對 編碼方式 過去的 view 關系 鏈接 utf-8和Unicode到底有什麽區別?是存儲方式不同?編碼方式不同?它們看起來似乎很相似,但是實際上他們並不是同一個層次的概念 要想先講清楚他們的區別,首先應該講講Unicode的來由。

Python中GBK, UTF-8Unicode的編碼問題

https://www.cnblogs.com/jxzheng/p/5186490.html 編碼問題,一直是使用python2時的一塊心病。幾乎所有的控制檯輸入輸出、IO操作和HTTP操作都會涉及如下的編碼問題: UnicodeDecodeError: ‘ascii’ codec can’

轉 MFC中 GB2312、UTF-8unicode 之間轉換

//GB2312到UTF-8的轉換static int GB2312ToUtf8(const char* gb2312, char* utf8){int len = MultiByteToWideChar(CP_ACP, 0, gb2312, -1, NULL, 0);wchar_t* wstr = new

MFC UTF-8Unicode編碼轉換

環境 適用範圍:MFC。 字符集:多位元組字符集。   宣告 CString UTF8AndUnicode_Convert(CString &strSource, UINT nSourceCodePage, UINT nTargetC

C++ UTF-8Unicode互相轉換

C++   UTF-8 轉 Unicode char* UTF8ToUnicode(char* szUTF8) { int wcscLen = ::MultiByteToWideChar(CP_UTF8, NULL, szUTF8, strlen(szUTF8),

MFC中 GB2312、UTF-8unicode 之間轉換

//GB2312到UTF-8的轉換 static int GB2312ToUtf8(const char* gb2312, char* utf8) {int len = MultiByteToWideChar(CP_ACP, 0, gb2312, -1, NULL, 0);

utf-8unicode的區別:字元編碼的辨析

總的來說就是一句話:utf-8是變長的,作為檔案儲存時用,unicode是定長的,將檔案讀取到記憶體時用 我們已經講過了,字串也是一種資料型別,但是,字串比較特殊的是還有一個編碼問題。 因為計算機只能處理數字,如果要處理文字,就必須先把文字轉換為數字才能處理。最早的計

字串UTF-8與ASCII相互轉換

LPSTR Convert(LPCSTR str, int sourceCodepage, int targetCodepage){ int len=_tcslen(str); int unicodeLen=MultiByteToWideChar(sourceCodepage

只包含中英文的UTF-8Unicode轉換(不支援其它語言)

 1.UTF8轉Unicode // 把UTF-8轉換成Unicode void UTF_8ToUnicode(char *pIn,TCHAR* pOut) { char* uchar = (char *)pOut; uchar[1] = ((pIn[0] &

js byte[] string 相互轉換 UTF-8

function stringToByte(str) { var bytes = new Array(); var len, c; len = str.length; for(var i = 0; i < len; i++) { c = str.charCode

編碼歷史ASCII、Unicodeutf-8GBK

英文字母 英文 全世界 兩個 編碼 中國 歷史 1的個數 包含 ASCII編碼:用來表示所有的大寫和小寫字母,數字0 到9、標點符號, 以及在美式英語中使用的特殊控制字符,一個字符共8位,占一個字節。 ASCII編碼是由美國國家標準協會制定的標準的單字節字符編碼方案,用來存

python2中將Unicode編碼的中文str相互轉換

在python2x版本中 關於中文漢字轉換 1.中文------字串格式 >>> s = '漢字' >>> type(s) <type 'str'> 預設漢字型別是:str 列印 s 時會顯示如下內容:反斜槓和字母組合,一個漢字對應兩組這樣的組

字串UTF-8GBK之間的轉換以及判定

一、判定字串是否是UTF-8的編碼 bool is_str_utf8(const char* str) { unsigned int nBytes = 0;//UFT8可用1-6個位元組編碼,ASCII用一個位元組 unsigned char chr = *str; boo

linuxc語言利用iconv函式實現utf-8unicode

    由於專案中需要轉換原生unicode到ascii的功能,本來想的用的是linux或者windows自帶的寬位元組轉成窄位元組的函式,但由於本身使用了apr_iconv庫,所以直接使用庫函式來解決。     期間碰到了庫函式使用一直出錯的問題,一

ASP.NET MVC4使用MongoDB實現時間戳ObjectId相互轉換

Model層的類: public class ObjectIdModel { public string CreationDateTimeText { get; set; } public string ObjectIdText

VCutf-8 ansii相互轉化

轉自:http://blog.sina.com.cn/s/blog_81084a3a01014srq.html healer_kxinline std::string KS_UTF8_to_ANSI (const char* szUTF8) { if (szUTF8

字元編碼(ASCII,UnicodeUTF-8) 大小端

本文包括2部分內容:“ASCII,Unicode和UTF-8” 和 “Big Endian和Little Endian”。 第1部分 ASCII,Unicode和UTF-8 介紹 1. ASCII碼 我們知道,在計算機內部,所有的資訊最終都表示為一個二進位制的字串。每一個二進位制位(bit)有0和1

libiconv 交叉編譯呼叫方法(UTF-8GB2312轉換

1、解壓 libiconv-1.14.tar.gz;進入libiconv-1.14目錄 2、./configure --host=arm-none-linux-gnueabi --enable-shared --enable-static --prefix=/opt/lib