簡體   English   中英

iOS特殊字符,奇怪的問題

[英]iOS special characters, strange issue

我有一個非常奇怪的問題。 我大約三年前開始使用iOS應用程序(iOS-SDK 3.0),從那時起就開始使用SDK 4.0和5.0。 從5.0(或5.1)開始,我突然開始遇到德國特殊字符(äöüß)的問題。

現在我甚至無法使用特殊字符初始化NSString,這一行:

NSString *str = @"abcäxyz";

發出以下警告:

由於輸入字節不屬於輸入代碼集UTF-8,輸入轉換停止

還有這個:

NSLog(@"%@", strTemp);

得到:

ABC

所以它停在第一個特殊的char。 在其他項目中一切都很好。 我可以毫無問題地使用特殊字符。

這是配置問題嗎?

編輯:顯然這是文件編碼的問題。

文件-I myFile


給予:

文本/ X-C ++; 字符集=未知-8位

試圖用iconv轉換它給了我:

轉換自未知-8位不受支持

使用UTF-8代碼初始化字符串時會發生什么? 像這樣:

 NSString *s = [NSString stringWithFormat:@"%C", 0xc39f]; // should be ß 

據我所知,你也應該能夠這樣做,但還沒有測試過:

  NSString *s = [NSString stringWithUTF8String:"0xc39f"];

試試這些,看看會發生什么。 周圍有許多站點可以保留特殊字符的UTF-8代碼表,例如這個

只要您的文件編碼為UTF-8, @"abcäxyz"應該沒問題,但嵌入文字unicode字符的顯式形式是\\ u ????。

- (void)testGermanChar
{
    NSString *expected = @"abc\u00E4xyz";
    NSString *actual = @"abcäxyz";
    STAssertEqualObjects(expected, actual, @"the two strings should be equivalent");
}

已解決:更改了Xcode中的文件編碼:單擊要更改其編碼的文件,然后打開右側面板(實際上這個窗格的名稱是什么?任何想法?)來編輯屬性。 在那里,您會看到“文本設置”下的“文本編碼”。 就這些。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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