首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从代码访问.mobileprovision文件

从代码访问.mobileprovision文件
EN

Stack Overflow用户
提问于 2013-06-18 15:08:07
回答 1查看 294关注 0票数 0

我试图从我自己的.mobileprovision程序中打开一个MacOS文件,然后用

代码语言:javascript
复制
[NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];

文件路径是正确的,我得到了一个有效的文件句柄。

当我试图使用TextEdit打开文件时,一切都正常。我可以打开文件并读取里面的文字。它只对代码不起作用。然后我得到一个

“.无法使用文本编码Unicode (UTF-8)打开”

错误信息。问题不是编码,而是UTF-8。似乎有一个安全或权限规则,它不允许正确读取文件。

有人有办法解决这个问题吗?也许我需要在请求中添加一个许可标志,但是在这个方向上找不到任何东西。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-08-20 06:04:21

我用txt文件解决了同样的问题,并通过将NSUTF8StringEncoding更改为NSUnicodeStringEncoding来解决这个问题。

可能是您的文件被写入了不同类型的编码。下面是OSX可用的字符串编码。试试看。

代码语言:javascript
复制
    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 */
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17172440

复制
相关文章

相似问题

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