确定NSString中的ascii字符

时间:2013-03-28 23:17:20

标签: ios cocoa-touch nsstring uikeyinput

在我的一个UIView课程中,我附加了UIKeyInput协议来收集来自UIKeyboard的输入。我试图弄清楚当按下空格按钮时使用的是什么ascii字符(它不仅仅是'它出现的其他东西)。有谁知道这个asci字符是什么,或者我怎么能弄清楚正在使用什么ascii代码?

2 个答案:

答案 0 :(得分:1)

要查看每个角色的值,您可以执行以下操作:

NSString *text = ... // the text to examine
for (NSUInteger c = 0; c < text.length; c++) {
    unichar char = [text characterAtIndex:c];
    NSLog(@"char = %x", (int)char); // Log the hex value of the Unicode character
}

请注意,此代码无法正确处理\ U10000及更高版本范围内的任何Unicode字符。这包括许多(全部?)表情符号字符。

答案 1 :(得分:1)

如果确实需要知道它实际上是什么字符(或代码点),请使用CFMutableString函数CFStringTransform() 这使您可以使用转换参数kCFStringTransformToUnicodeName来获取人类可读的Unicode名称,例如Hex-Any来获取转义的Unicode代码点。

否则,您可以使用unichar方法来简单地获取代码点。