c++ - 字符解码转换函数实现

标签 c++ c unicode

我需要用 C++ 或 C(最需要的)实现一个字符编码转换函数,从自定义编码方案(以在单一编码中支持多种语言)到 UTF-8。

我们的编码非常随机,它 looks like this

由于此映射的随机性,我正在考虑使用 std::map 在两个不同的映射中将我们的编码映射到 UTF,反之亦然,并使用此映射进行转换。他们是否有任何优化的数据结构或方法。

最佳答案

如果您的代码点是连续的,只需制作一个大的 char * 数组并使用它进行翻译。我真的不明白你所说的 UTF-8 代码点是什么意思。 UTF-8 有表示,而 Unicode 有代码点。如果您需要代码点,请使用整数数组。

const int mycode_to_unicode [] = {
   0x00ff,
   0x0102,
   // etc.
 };

如果您的编码中存在漏洞以捕获错误,您可以设置一个类似 -1 的值。

换一种方式就是制作一个相同大小的结构数组,例如

struct {
   int mycode;
   int unicode;
};

将数组的键复制到 mycode 中,将值复制到 unicode 中,并通过 qsort 运行它,并使用比较 unicode 值的函数,然后使用 bsearch 具有从代码点到编码的相同功能。

假设您要使用 C。

关于c++ - 字符解码转换函数实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1748473/

相关文章:

c++ - 如何调用QCombobox的linedit的KeyPressEvent(QKeyEvent *)?

c++ - 在 C++ 中生成随机 unsigned char 值

c++ - vector 的 emplace_back

c - 我的代码无法正常工作,我做错了吗?

Golang unicode 字符值

python - 使用 Unicode 将 CSV 转换为 YAML?

c++ - 避免将字符串文字复制到不更改的类字符串数据成员

c++ - 从应用程序打开控制台

c - 如何编写 C 字符串函数 : strncpy , strncat 和 strncmp

python - Beautiful Soup 将 Unicode 字符转换为 HTML 实体