我觉得你的理解似乎有点问题。你提到 utfcpp 里的 `utf8to16` 实际上是转 ucs-2,但这个说法是错的。UCS-2 和 UTF-16 的区别就是前者不支持 surrogate pair,不能支持 U+10000 及以上的 Unicode 字符。而 `utf8to16` 里的代码里是支持 surrogate pair 的,所以 `utf8to16` 这个名字完全没有问题。