#include <stdio.h>
#include <stdlib.h>
int UTF8ToUnicode(const char *pmbs, wchar_t *pwcs, int size)
{
int cnt = 0;
// 这里 size-- 是预先除去尾零所需位置
if (pmbs != NULL && pwcs != NULL && size-- > 0) {
while (*pmbs != 0 && size > 0) {
unsigned char ch = *pmbs;
if (ch > 0x7FU) {
int cwch = 0;
while (ch & 0x80U) {
ch <<= 1;
cwch++;
}
*pwcs = *pmbs++ & (0xFFU >> cwch);
while (--cwch > 0) {
*pwcs <<= 6;
*pwcs |= (*pmbs++ & 0x3FU);
}
} else {
*pwcs = *pmbs++;
}
pwcs++;
size--;
cnt++;
}
*pwcs =
linux下面 UTF-8 <-> UTF-16/ UTF-32 互转代码
最新推荐文章于 2023-04-01 10:37:58 发布
这篇博客主要介绍了在Linux环境下如何使用C++进行UTF-8、UTF-16和UTF-32之间的转换,提供了相应的代码示例,帮助读者理解不同字符编码间的相互转换操作。
摘要由CSDN通过智能技术生成