2

我必须UITextField输入一个unicode值,当我点击UIButton需要转换它并显示在 a 中时UILabel
下面的代码对我来说工作正常(我的代码中的 unicode):

NSString *str = [NSString stringWithUTF8String:"\u0D05"];
    m_CtrlLabel.text=str;  

我的问题是我无法从UITextField. 那就是我在0D05里面输入UITextField,我需要转换它并显示在标签中,我尝试了很多组合但没有运气。
提前致谢

4

3 回答 3

4

0D05只是一个十六进制数。您可以使用NSScanner将十六进制字符串解析为整数,然后创建一个NSString包含 Unicode 字符的字符。

NSString *hexString = yourInputField.text;

NSScanner *scanner = [NSScanner scannerWithString:hexString];
uint32_t unicodeInt;
if ([scanner scanHexInt:&unicodeInt]) {
    unicodeInt = OSSwapHostToLittleInt32(unicodeInt); // To make it byte-order safe
    NSString *unicodeString = [[NSString alloc] initWithBytes:&unicodeInt length:4 encoding:NSUTF32LittleEndianStringEncoding];
    yourOutputLabel.text = unicodeString;
} else {
    // Conversion failed, invalid input.
}

这甚至适用于 Unicode > U+FFFF,例如1F34C(感谢 R. Martinho Fernandes 的反馈)。

于 2013-02-28T10:40:42.800 回答
0

尝试更改UILable.
实际上有些字体不能显示所有的 unicode 输出!
这曾经发生在我身上Java Swing
我试图在 aunicode上显示一个字符串,JLabel但 unicode 字符串没有显示在JLablel.
然后我将字体更改为Arial显示的 unicode 值!
因此,我建议您尝试将字体从 toArial或其他字体更改。

希望这可以帮助!

于 2013-03-01T05:02:05.427 回答
0

问题是输入应该是字符指针

NSString *str = [NSString stringWithUTF8String:[self.textField.text UTF8String]];
    m_CtrlLabel.text=str;  
于 2013-02-28T10:29:23.637 回答