我有一個存儲在unichar變量中的國際字符。這個角色不是來自文件或網址。變量本身只存儲一個UTF-8格式的unsigned short(0xce91),並轉換爲希臘大寫字母'A'。我試圖把這個角色放到NSString變量中,但我失敗了。如何將unichar值轉換爲Objective-C中的NSString?
我已經試過兩種不同的方式這兩個不成功的:
unichar greekAlpha = 0xce91; //could have written greekAlpha = 'Α' instead.
NSString *theString = [NSString stringWithFormat:@"Greek Alpha: %C", greekAlpha];
沒有好。我有一些奇怪的漢字。作爲一個旁註,這與英文字符完美配合。
然後我也試過這樣:
NSString *byteString = [[NSString alloc] initWithBytes:&greekAlpha
length:sizeof(unichar)
encoding:NSUTF8StringEncoding];
但是,這也不行。 我明顯在做一些非常錯誤的事情,但我不知道該怎麼做。 有人可以幫我嗎? 謝謝!
您可以通過按下編輯器工具欄中的小按鈕101010來格式化代碼以獲得更好的格式。 – hallski 2009-11-21 16:07:48
謝謝你讓我知道:) – Terry 2009-11-21 16:21:16
你確定'unichar'是在這裏使用的正確的數據類型嗎?將UTF-8數據存儲爲用於UTF-16的類型存在錯誤。正如Jon Jardine所指出的那樣,UTF-8字符長度超過16位......你可以使用NSString作爲單個字符嗎('NSString greekAlpha = @「Α」'然後在'stringWithFormat'中使用%@)? – 2010-06-08 14:28:05