iphone - 在 iPhone 上检测 NSString 中的 Unicode 字符

标签 iphone unicode nsstring hex

我正在开发 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。您可以在此处了解差异:

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

关于iphone - 在 iPhone 上检测 NSString 中的 Unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1706633/

相关文章:

security - 如何让 IOS 应用*需要* DNSSec?

iphone - 当应用程序被带到前台时获得准确的坐标

python - 如何解决使用 Python 解码和打印希腊字符的困难?

ios - 创建没有警报的EKEvent

iphone - 我的 UITableViewCell 中没有文字

ios - 核心数据。检测相同的对象?

iOS:NSString(数据:NSData,编码:UInt)在某些字符处失败

objective-c - 更改 NSMutableArray 中所有对象的属性

c# - 强制 C# 使用 ASCII

java - 在 Java 6 字符串文字中解析 unicode 转义时出现问题...?