1
我有一個NSString包含用NSUTF8Encoding編碼的數據。我想將該字符串轉換爲NSASCIIEncoding。無論如何請告訴我以適當的方式轉換它。我能夠將反轉(NSASCIIEncoding轉換爲NSUTF8Encoding)。如何將NSUTF8Encoded中的NSString轉換爲Objective-C iPhone中的NSASCIIEncoding?
請提供任何示例代碼。
預先感謝
我有一個NSString包含用NSUTF8Encoding編碼的數據。我想將該字符串轉換爲NSASCIIEncoding。無論如何請告訴我以適當的方式轉換它。我能夠將反轉(NSASCIIEncoding轉換爲NSUTF8Encoding)。如何將NSUTF8Encoded中的NSString轉換爲Objective-C iPhone中的NSASCIIEncoding?
請提供任何示例代碼。
預先感謝
我有其中包含與NSUTF8Encoding編碼數據一個NSString。
真的嗎? 因爲因爲您無法確定NSString
在內部始終將其內容視爲UTF-16。NSString
如何在內部存儲其數據。從概念上講,NSString
使用UTF-16。
我想將該字符串轉換爲NSASCIIStringEncoding。因爲你不能保證一個NSString可以轉換爲ASCII
if ([myString canBeConvertedToEncoding:NSASCIIStringEncoding]) {
const char *asciiString = [myString cStringUsingEncoding:NSASCIIStringEncoding];
}
+1的測試是非常重要的。 – JeremyP
我的印象是,NSString的內部表示根據類簇想要如何優化它而變化。 Apple在哪裏說它總是UTF-16? – LucasTizma
Lucas:參見http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Strings/Articles/stringsClusters.html:「NSString對象在概念上是UTF-16,平臺排列順序不一定。暗示着它們內部存儲機制的任何內容;它的含義是NSString的長度,字符索引和範圍用UTF-16單位來表示,而NSString方法名稱中的「字符」這個術語是指16位平臺的endian UTF-16單元「。 - 所以你至少部分是正確的。在概念上它是UTF-16,但沒有定義實際的存儲。 –