我有一个UITextField
输入一个unicode
值,当我点击UIButton
需要将其转换并显示在UILabel
.
下面的代码对我来说工作正常(我的代码中的unicode):
NSString *str = [NSString stringWithUTF8String:"\u0D05"];
m_CtrlLabel.text=str;
我的问题是我无法将 4 位 unicode 从UITextField
。这就是我正在打字0D05
在 - 的里面UITextField
,我需要转换它并在标签中显示,我尝试了很多组合但没有运气。
提前致谢
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 的反馈)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)