2012-09-17 41 views
1

我使用了一個類似於nsstring的分隔符,但是當我用模擬器顯示控制檯時顯示了我很好,但是當我用iPhone 4S執行操作時顯示了我其他的一些內容。 我試圖解析爲utf8,ascii,我無法解決它。 有人可以告訴我爲什麼發生這種情況?帶有分隔符的iPhone設備nsstring

#define SEPARATOR @"ääëëñS0ñççää" 
  • iPhone模擬器:
    的NSLog(@ 「%@」,SEPARATOR); - >文本在終端:ääëëñS0ñççää`

  • 我的iPhone 4S:

    的NSLog(@ 「%@」,SEPARATOR); - >文本終端:√§√§√'√'√±S0√±√ß√ß√§√§`

    const char *utf8String = [SEPARADOR UTF8String]; 
    
    NSString *stringFromUTFString = [[NSString alloc] initWithUTF8String:utf8String]; 
    
    NSLog(@"%@",stringFromUTFString); 
    

現在,我做到了這一點,當我使用模擬器正確顯示了SEPARATOR,但是當我使用我的設備時,他將文本傳給NSISOLatin1StringEncoding。

+0

怎麼樣'的NSLog(@「%@」,分隔符);'? – jrtc27

+0

是的,並用模擬器給我看:ääëëñS0ñççää'和我的設備:√§√§√'√'√±S0√±√√√√√§√§ – user1677591

回答

1

Xcode的模擬器使用系統字體(Mac機)來渲染文本,但iPhone只使用嵌入其中的字體,這意味着模擬器中可用的所有字體可能無法在iPhone上使用。

+0

我該如何解決它? – user1677591

0

試試這個

NSString *SEPARATOR = @"ääëëñS0ñççää"; 
NSLog(@"%s",[SEPARATOR UTF8String]); 

這就是說,你應該有字體在Mac上同時運行運行模擬器和設備本身,因爲你是在處理特定的語言 - Mac和iOS設備都應該有這個語言已安裝。

看來,你應該去到您的設備上設置並啓用任何一種語言,你正在處理......

+0

我已經嘗試過並且返回這個:,àö¬ß,àößßåàö¬¥,àö¬¥,àö¬±S0,àö¬,àö√ü,√ö√üåàößßåöö¬ß – user1677591

+0

但不是特定的語言是iso拉丁語1。 – user1677591