在iPhone上检测NSString中的Unicode字符

Fin*_*Fin 8 iphone unicode hex nsstring

我正在为iPhone开发一个SMS应用程序.我需要检测用户是否在他们希望发送的NSString中输入了任何unicode字符.

我需要这样做是因为unicode字符在消息中占用更多空间,还因为我需要将它们转换为十六进制等价物.

所以我的问题是如何检测NSString中的unicode字符(我从UITextView中读取).另外,我如何将这些字符转换为UCS-2十六进制等效字符?

例如,繁= 7E41,体= 4F53,中= 4E2D,文= 6587

Jer*_*wer 26

要仅检查ascii字符(或您选择的其他编码),请使用:

[myString canBeConvertedToEncoding:NSASCIIStringEncoding];

如果字符串包含非ascii字符,它将返回NO.然后,您可以使用以下命令将字符串转换为UCS-2数据:

[myString dataUsingEncoding:NSUTF16BigEndianStringEncoding];

或NSUTF16LittleEndianStringEncoding,具体取决于您的平台.UCS-2和UTF-16之间存在细微差别.UTF-16取代了UCS-2.你可以在这里阅读有关的差异:

http://en.wikipedia.org/wiki/UTF-16/UCS-2