我想从int值创建字符,其值> 127。
例如:我计算133,我想要角色Å
或者我计算149,我想要字符Õ
(见http://www.utf8-chartable.de/unicode-utf8-table.pl?utf8=dec)
我使用以下代码,它不会返回正确的字符:
int pos = 133;
NSString *TF = [NSString stringWithFormat:@"%c", pos];
这是因为int> 127所以它不是常规ASCII(可以用%c来完成)
%C也不起作用。
我需要一些编码吗?或stringWithFormat
中的其他运算符?
我查看了CFString
课程,但我不明白我如何在这里使用它以及它是否适用。
答案 0 :(得分:0)
你使用什么编码133编码字符Å?
来自网站
Unicode UTF-8
code point character (dec.) name
U+00C5 Å 195 133 LATIN CAPITAL LETTER A WITH RING ABOVE
133不是有效值,您想要的值是:195 133(两个字节)。对于最多127个字符,UTF8只有一个字节。
char utf8[2] = {195, 133};
NSString *s = [NSString stringWithUTF8String:utf8];
NSLog(@"s: '%@'", s);
NSLog输出:
s:'Å'
网页的代码点为U + 00C5,使用UTF32:
u_int32_t bytes = 0x00C5;
NSString *s = [[NSString alloc] initWithBytes:&bytes length:4 encoding:NSUTF32LittleEndianStringEncoding];
NSLog(@"s: '%@'", s);
NSLog输出:
s:'Å'