![](/img/trans.png)
[英]Unable to convert UTF-8 text from NSDictionary in Objective-C
[英]Objective-C int convert to UTF-8
我想將此int num: 53392
轉換為西里爾字母A
我用這個: NSString *string = [NSString stringWithFormat:@"%c", 53392];
但這現在可以正常工作,並向我返回奇怪的符號。 有人能幫我嗎?
首先,使用%C
格式(大寫字母C)。 其次,西里爾字母A的代碼是0x0410,而不是您的電話號碼。
創建包含Unicode字符的NSString的正確方法是使用stringWithUTF8String和\\ u ####轉義序列,如下所示:
NSString *aString = [NSString stringWithUTF8String:"To be continued\u2026"];
您擁有的整數53392是打包為整數的兩個字節0xD0和0x90,它們是Unicode 0x410(十進制1040)西里爾字母A的UTF-8編碼。
進行轉換的方法有多種,這里有兩種。
如果您知道UTF-8序列(可以根據需要從整數中提取出來),則可以使用以下序列將其轉換為NSString
:
char buf[2];
buf[0] = 0xD0;
buf[1] = 0x90;
NSString *cyrillicA = [[NSString alloc] initWithBytes:buf length:2 encoding:NSUTF8StringEncoding];
如果您知道UTF-16值,則可以使用%C格式:
NSString *cyrillicA = [NSString stringWithFormat:@"%C", 0x410];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.