如何在iphone/iPad中检测CString文本编码?

如何在iphone/iPad中检测CString文本编码?,iphone,ipad,Iphone,Ipad,我有一组不同文本编码的CString 由于我不知道CString的原始编码,如何在iphone/iPad中检测CString文本编码 谢谢。在一般情况下,如果没有其他信息,您无法解决此问题,因为同一字符串可能在多个编码中有效。例如,十六进制值48 45 4C 4C D4在iso-8859-1中等于“HELLÔ”,在KOI8-R编码中等于“HELLτ”。任何一种8位编码都很难区分,除非你开始使用启发式方法,比如查字典(嗯……看起来像保加利亚语) 一种策略是首先尝试utf-8,如果输入无法解码为ut

我有一组不同文本编码的CString

由于我不知道CString的原始编码,如何在iphone/iPad中检测CString文本编码


谢谢。

在一般情况下,如果没有其他信息,您无法解决此问题,因为同一字符串可能在多个编码中有效。例如,十六进制值48 45 4C 4C D4在iso-8859-1中等于“HELLÔ”,在KOI8-R编码中等于“HELLτ”。任何一种8位编码都很难区分,除非你开始使用启发式方法,比如查字典(嗯……看起来像保加利亚语)


一种策略是首先尝试utf-8,如果输入无法解码为utf-8,则采用指定的8位编码(例如iso-8859-1)。(对于utf-8,存在无效的字节序列,因此,如果您尝试将某个8位编码的字符串解码为utf-8,则该字符串很可能会抛出错误)。

NSString类提供了一些编码检测,但似乎只有从文件或URL加载时才可用。我不确定它尝试了多少种编码,也不确定它有多准确。

此方法不提供自动字符检测。您需要提供正确的编码。@user403015:请再次阅读文档,文档中说:“此方法试图确定路径处文件的编码。”。您查看的是
stringWithContentsofFile:encoding:error
,而不是
stringWithContentsofFile:
使用的
编码:error