首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以测试文本文件是否可以在不实际加载的情况下使用NSStringEncoding加载?

是否可以测试文本文件是否可以在不实际加载的情况下使用NSStringEncoding加载?
EN

Stack Overflow用户
提问于 2012-07-20 07:38:07
回答 1查看 83关注 0票数 0

我正在开发一个处理文本文件的应用程序。

在打开的对话框附件视图中,当用户选择一个文件时,我想要在NSPopUpButton上显示所选文件的支持编码,但到目前为止,我能找到的测试文件是否可以使用某种编码打开的唯一方法是实际尝试将其加载到NSString中。

现在,我对每种编码都这样做:

代码语言:javascript
复制
NSString *fileContents = [NSString stringWithContentsOfURL:selectedURL encoding:encoding error:nil];

if (fileContents)
{
    /* Add encoding to the list of supported encodings */
}

这会将整个文件加载到fileContents对象。

是否有可能只测试文件是否可以加载,而不实际加载?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-20 11:38:28

除非你阅读了所有的内容,否则这是不可能100%准确预测的。例如,许多编码是ASCII的超集,如果你在阅读文件的一半时停止阅读,你会被愚弄;也许第一段碰巧只包含ASCII,然后4个段落之后,文件突然包含了一堆数学公式。

一个很好的中间立场是支持用于指定已经存在的编码的约定。例如,像vimemacs这样的文本编辑器为在文件的前几行中嵌入编码提示指定了特定的语法,并且HTML和XML文件可以包含带有编码信息的<meta>标记。如果您可以读取这些文件,则可以相当安全地假定它们是正确的,而不是读取整个文件;否则,您必须读取整个文件才能确定。

(一个例外:某些Unicode编码以字节顺序标记开头,而其他任何编码都没有使用这些标记,因此您可以假定它们就是它们所说的那样。)

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

https://stackoverflow.com/questions/11570856

复制
相关文章

相似问题

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