我正在尝试将UTF-8字符串转换为UCS-2字符串。
我需要获取类似“\ uFF0D \ uFF0D \ u6211 \ u7684 \ u4E0A \ u7F51 \ u4E3B \ u9875”的字符串。
现在,我已经在Google上搜索了大约一个月,但是仍然没有有关将UTF-8转换为UCS-2的参考。
请有人帮我。
提前谢谢。

编辑:好的,也许我的解释还不够好。这是我想做的。
我住在韩国,正在尝试使用CTMessageCenter发送短信。我试图通过我的应用程序发送简体中文字符。而我得到了???而不是适当的字符。所以我也尝试了UTF-8,UTF-16,BE和LE。但是它们都返回??。最后,我发现SMS在韩国使用UCS-2和EUC-KR编码。很奇怪,不是吗?
无论如何,我尝试发送像\ u4E3B \ u9875这样的字符串,它确实有效。
因此,我需要先将字符串转换为UCS-2编码,然后从这些字符串中获取字符串文字。

最佳答案

Wikipedia:

较早的UCS-2(2字节通用字符集)与
在2.0版的UTF-16中已取代的字符编码
1996年7月成为Unicode标准。2产生固定长度的格式
通过简单地将代码点用作16位代码单元并产生
对于96.9%的代码点,其结果与UTF-16完全相同
范围为0-0xFFFF,包括已分配了一个
当时的价值。

IBM:

由于UCS-2标准限制为65,535个字符,因此数据
加工业需要94,000个字符以上的UCS-2标准
正在被Unicode UTF-16标准取代。

但是,由于UTF-16是现有UCS-2标准的超集,
您可以使用现有的UCS-2系统开发应用程序
支持,只要您的应用程序将UCS-2视为
UTF-16。

uincode.org:

UCS-2是过时的术语,指的是Unicode
在替代代码点和
UTF-16已添加到标准的2.0版中。这个词现在应该
被避免。

UCS-2没有定义独特的数据格式,因为UTF-16和UCS-2
出于数据交换的目的是相同的。两者都是16位的,并且具有
完全相同的代码单元表示形式。

因此,在大多数语言库中使用“UTF8toUnicode”转换将产生UTF-16,实质上就是UCS-2。从Objective-C字符串中提取16位字符将完成相同的操作。

换句话说,解决方案一直盯着你。

关于ios - 谁能告诉我如何在Objective-c中将UTF-8值转换为UCS-2值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6967251/

10-10 20:29