首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSStringEncoding到字符串

NSStringEncoding到字符串
EN

Stack Overflow用户
提问于 2014-11-17 18:22:00
回答 4查看 2.6K关注 0票数 1

代码

代码语言:javascript
复制
NSString* strFromWeb = [NSString stringWithContentsOfURL:url usedEncoding:&enc error:&error];
NSLog(@"%d", enc);

这个打印4,因为

代码语言:javascript
复制
NSUTF8StringEncoding  = 4,

有什么内置函数可以打印NSUTF8StringEncoding之类的吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-11-17 18:41:08

您可以将NSStringEncoding转换为CFStringEncoding,然后从中获取名称:

代码语言:javascript
复制
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
}
票数 3
EN

Stack Overflow用户

发布于 2014-11-17 18:41:00

没有办法直接从它的值中获取枚举名称作为字符串。

对于字符串编码,您可以深入到Core层,它有CFStringGetNameOfEncoding,它接受与NSStringEncoding不同的CFStringEncoding。但是使用CFStringConvertNSStringEncodingToEncoding,您可以转换编码值。不过,这并不是所有编码的名称。

票数 1
EN

Stack Overflow用户

发布于 2014-11-17 19:12:54

这可能令人感兴趣:

代码语言:javascript
复制
NSStringEncoding encoding;
NSString* strFromWeb = [NSString stringWithContentsOfURL:url usedEncoding:&encoding error:&error];
NSLog(@"%d", encoding);

可用编码:

代码语言:javascript
复制
*/
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;

来源:NSUTF8StringEncoding returns nil NSString

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26979279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档