我正在开发 iPhone 的短信应用程序。我需要检测用户是否在他们希望发送的 NSString 中输入了任何 unicode 字符。
我需要这样做是因为 unicode 字符在消息中占用更多空间,而且还因为我需要将它们转换为相应的十六进制字符。
所以我的问题是如何检测 NSString(我从 UITextView 读取的)中是否存在 unicode 字符。另外,如何将这些字符转换为其 UCS-2 十六进制等效值?
例如繁 = 7E41、体 = 4F53、中 = 4E2D、文 = 6587
最佳答案
要仅检查 ascii 字符(或您选择的其他编码),请使用:
[myString canBeConvertedToEncoding:NSASCIIStringEncoding];
如果字符串包含非ascii字符,则返回NO。然后,您可以使用以下命令将字符串转换为 UCS-2 数据:
[myString dataUsingEncoding:NSUTF16BigEndianStringEncoding];
或 NSUTF16LittleEndianStringEncoding,具体取决于您的平台。 UCS-2 和 UTF-16 之间存在细微差别。 UTF-16 已取代 UCS-2。您可以在此处了解差异:
关于iphone - 在 iPhone 上检测 NSString 中的 Unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1706633/