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,但没有定义实际的存储。 –