visual-c – 是否可以仅使用Windows API将UTF32文本转换为UTF16?

我试图找到单独使用
Windows API将UTF-32文本转换为任何代码页的方法.我不能用CLR来完成这个任务.

Microsoft在http://msdn.microsoft.com/en-us/library/dd317756(VS.85).aspx的代码页标识符页面将UTF-32列为仅供托管应用程序使用.

使用UTF-32时,ConvertStringTo / FromUnicode失败.

最佳答案 通过对Unicode的一些了解,您应该能够在不使用任何API的情况下创建UTF32到UTF16转换器.

U 0000到U FFFF范围内的所有字符都可以删除高16位.

U 10000到U 10FFFF范围内的值可以转换为两个16位字,称为代理项对:

http://en.wikipedia.org/wiki/UTF-16#Encoding_of_characters_outside_the_BMP

点赞