代码
NSString* strFromWeb = [NSString stringWithContentsOfURL:url usedEncoding:&enc error:&error];
NSLog(@"%d", enc);这个打印4,因为
NSUTF8StringEncoding = 4,有什么内置函数可以打印NSUTF8StringEncoding之类的吗?
发布于 2014-11-17 18:41:08
您可以将NSStringEncoding转换为CFStringEncoding,然后从中获取名称:
NSStringEncoding enc;
NSString* strFromWeb = [NSString stringWithContentsOfURL:url usedEncoding:&enc error:&error];
if (strFromWeb) {
CFStringEncoding cfEnc = CFStringConvertNSStringEncodingToEncoding(enc);
NSString *name = (NSString *)CFStringGetNameOfEncoding(cfEnc);
NSLog(@"Encoding = %@", name);
} else {
// log error
}发布于 2014-11-17 18:41:00
没有办法直接从它的值中获取枚举名称作为字符串。
对于字符串编码,您可以深入到Core层,它有CFStringGetNameOfEncoding,它接受与NSStringEncoding不同的CFStringEncoding。但是使用CFStringConvertNSStringEncodingToEncoding,您可以转换编码值。不过,这并不是所有编码的名称。
发布于 2014-11-17 19:12:54
这可能令人感兴趣:
NSStringEncoding encoding;
NSString* strFromWeb = [NSString stringWithContentsOfURL:url usedEncoding:&encoding error:&error];
NSLog(@"%d", encoding);可用编码:
*/
enum {
NSASCIIStringEncoding = 1, /* 0..127 only */
NSNEXTSTEPStringEncoding = 2,
NSJapaneseEUCStringEncoding = 3,
NSUTF8StringEncoding = 4,
NSISOLatin1StringEncoding = 5,
NSSymbolStringEncoding = 6,
NSNonLossyASCIIStringEncoding = 7,
NSShiftJISStringEncoding = 8, /* kCFStringEncodingDOSJapanese */
NSISOLatin2StringEncoding = 9,
NSUnicodeStringEncoding = 10,
NSWindowsCP1251StringEncoding = 11, /* Cyrillic; same as AdobeStandardCyrillic */
NSWindowsCP1252StringEncoding = 12, /* WinLatin1 */
NSWindowsCP1253StringEncoding = 13, /* Greek */
NSWindowsCP1254StringEncoding = 14, /* Turkish */
NSWindowsCP1250StringEncoding = 15, /* WinLatin2 */
NSISO2022JPStringEncoding = 21, /* ISO 2022 Japanese encoding for e-mail */
NSMacOSRomanStringEncoding = 30,
NSUTF16StringEncoding = NSUnicodeStringEncoding, /* An alias for NSUnicodeStringEncoding */
NSUTF16BigEndianStringEncoding = 0x90000100, /* NSUTF16StringEncoding encoding with explicit endianness specified */
NSUTF16LittleEndianStringEncoding = 0x94000100, /* NSUTF16StringEncoding encoding with explicit endianness specified */
NSUTF32StringEncoding = 0x8c000100,
NSUTF32BigEndianStringEncoding = 0x98000100, /* NSUTF32StringEncoding encoding with explicit endianness specified */
NSUTF32LittleEndianStringEncoding = 0x9c000100 /* NSUTF32StringEncoding encoding with explicit endianness specified */
};
typedef NSUInteger NSStringEncoding;https://stackoverflow.com/questions/26979279
复制相似问题