簡體   English   中英

Objective-C int轉換為UTF-8

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM