VC下unicode与utf-8互转

使用场合:

VC下使用unicode编码,如果需要使用utf-8,这时就需要转换(支持中文)

//参数:utf8  要转换的utf8 指针

unicode接收转换后的buff

nBuffSize buff的大小

返回值:转换后的unicode大小

int Utf82Unicode(const char* utf, wchar_t* unicode, int nBuffSize)  
{  
	if(!utf || !strlen(utf))  
	{  
		return 0;  
	}  
	int dwUnicodeLen = MultiByteToWideChar(CP_UTF8,0,utf,-1,NULL,0);  
	size_t num = dwUnicodeLen*sizeof(wchar_t);  
	if (num > nBuffSize)
	{
		return 0;
	}
	MultiByteToWideChar(CP_UTF8, 0, utf, -1, unicode, dwUnicodeLen);   
	return dwUnicodeLen; 
}

//参数:unicode 要转换的unicode指针

utf8 接收转换后的buff

nBuffSize buff的大小

返回值:转换utf8大小

int Unicode2Utf8(const wchar_t* unicode, char* utf8, int nBuffSize) 
{    
	if (!unicode || !wcslen(unicode))
	{
		return 0;
	}
	int len;    
	len = WideCharToMultiByte(CP_UTF8, 0, unicode, -1, NULL, 0, NULL, NULL); 
	if (len > nBuffSize)
	{
		return 0;
	}  
	WideCharToMultiByte(CP_UTF8, 0, unicode, -1, utf8, len, NULL,NULL);    
	return len;    
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Barry__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值