Windows 提供了编码转换函数(“MultiByteToWideChar”和“WideCharToMultiByte”),这些函数能够进行 UTF-8 与 UTF-16 之间的转换等。但我见过有人提供自制的 30 到 40 行函数,声称也可以执行 UTF-8/UTF-16 编码转换。
我的问题是,这种微型转换器的可靠性如何?如此少量的代码能否处理诸如将 UTF-16 代理对(例如
简而言之,如此微小的转换器仅仅是玩具吗?还是可以认真对待?就此而言,为什么 unicode.org 似乎没有提供有关完成此类转换的算法的建议?
最佳答案
开源 ICU 库有 113 行 ucnv_fromUnicode_UTF8 代码 (source/common/ucnv_u8.c)。包括错误检查、正确的代理处理和一些评论。仅当您不喜欢命名约定时才应考虑使用其他名称。
关于c++ - Unicode 内 "lean"编码转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3002084/