我想知道在objective-c中的文本文件编码。你能解释我怎么知道吗?如何检测objective-c中的文本文件编码?
4
A
回答
6
您可以使用stringWithContentsOfFile:usedEncoding:error:
,除了新字符串之外,还会返回使用的编码。
我应该注意到,这本质上是一个启发式过程 - 并不总是可以确定文件的字符编码。
1
一些文本文档在我的项目中显示乱码,所以我需要知道文本文件的编码,以更改其编码,让它可以被人类读取。
我发现这一点:http://lists.w3.org/Archives/Public/www-validator/2002Aug/0084.html 和使用OC重写代码,它可以为我工作:
NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *sourceFilePath = [documentPath stringByAppendingPathComponent:@"fileName.txt"];
NSFileHandle *sourceFileHandle = [NSFileHandle fileHandleForReadingAtPath:sourceFilePath];
NSData *begainData = [sourceFileHandle readDataOfLength:3];
Byte *bytes = (Byte *)[begainData bytes];
if (bytes[0] == 0xff
&& bytes[1] == 0xfe
&& (begainData.length < 4
|| bytes[2] != 0
|| bytes[3] != 0
)
)
{
NSLog(@"unicode");
}
if (bytes[0] == 0xfe
&& bytes[1] == 0xff
)
NSLog(@"BigEndianUnicode");
if (bytes[0] == 0xef && bytes[1] == 0xbb && bytes[2] == 0xbf)
NSLog(@"UTF8");
if (bytes[0] == 0x2b && bytes[1] == 0x2f && bytes[2] == 0x76)
NSLog(@"UTF7");
if (bytes[0] == 0xff && bytes[1] == 0xfe && bytes[2] == 0 && bytes[3] == 0)
NSLog(@"UTF32");
if (begainData.length < 3)
NSLog(@"ascii");
相关问题
- 1. 如何检测文本文件的编码/代码页
- 2. 如何检测文件的编码?
- 3. 如何使用Delphi检测文本文件的字符编码?
- 4. 如何检测iPhone/iPad中的CString文本编码?
- 5. 在PHP中检测文件编码
- 6. 如何检测flex/actionscript中的文件编码?
- 7. 如何检测编辑文本中的西里尔文字?
- 8. 不知道文件编码在objectivec中的内存映射
- 9. eclipse自动文件编码检测
- 10. 如何检查文本文件原始编码VC++或MFC
- 11. Boost:如何检查文本文件字符编码/字符集?
- 12. 如何检测文件的字符编码?
- 13. 如何检测和转换文本编码?
- 14. 如何检测文本块
- 15. 如何检测MIME文件中的纯文本?
- 16. 如何在vbscript中检测文本文件(EOF)的结尾?
- 17. 如何检测文本文件中的选项卡?
- 18. 如何检查数组的内容?解析XML文件的ObjectiveC
- 19. 如何检测文件是否使用UTF-8编码?
- 20. SubRip文件解析器无法检测文件编码
- 21. 文本文件编码
- 22. 如何检测Siri是否在iOS的textview中编写文本?
- 23. 在文本中检测代码
- 24. 如何检测文本中的源代码?
- 25. 如何检测文件是否不是c中的文本文件#
- 26. 如何更改Eclipse中的默认文本文件编码?
- 27. 拼图。带有编码文本的Txt文件。如何解码?
- 28. 如何检测C++中的空文件?
- 29. 如何检测XSD文件中的SimpleType?
- 30. 如何检测在文本框中
谢谢丹尼尔。 :) – Rizki 2011-03-11 07:53:53