WideCharToMultiByte(char *dec, const wchar *src)//底层是这么实现的吗?
void WideCharToMultiByte(char *dec, const wchar *src)
{
int i;
int len = lstrlen(src);
for (i = 0; i < len; i++)
dec[i] = (char)src[i];
dec[i] = 0;
}
[解决办法]
都是有固定的编码规则的,像utf-8的字符长度都不一样,强制转肯定不行。
一般作为基础的是Unicode,其他编码方式在Unicode基础上进行一定规则的变换,或至少会保存与Unicode相同字符的编码对应关系。所以2种编码方式要转换,一般需要先转换成Unicode,再从Unicode转换成其它。
最简单的转换方式就是查表,同一个字符,在不同的编码规则之下,有不同的二进制值和数据宽度。
[解决办法]