iPhone SDK - HTML 源代码中的 stringWithContentsOfUrl ASCII 字符

标签 iphone objective-c cocoa

当我获取任何网页的源代码时,无论我使用什么编码,我总是以 &# - 字符(例如 © 或 ®)结束,而不是实际的字符本身。这也适用于外来字符(例如瑞典语中的 åäö),我必须从“Å”等解析)。

我正在使用

+stringWithContentsOfUrl: encoding: error; 

获取源代码并尝试了几种不同的编码,例如 NSUTF8StringEncoding 和 NSASCIIStringEncoding,但似乎没有什么影响最终结果字符串。

非常感谢任何想法/提示/解决方案!我不想实现整个 ASCII 表并替换每个字符的所有出现...提前致谢!

问候

最佳答案

I'm using

+stringWithContentsOfUrl: encoding: error; 

to fetch the source and have tried several different encodings such as NSUTF8StringEncoding and NSASCIIStringEncoding, but nothing seems to affect the end result string.

您误解了 encoding: 参数的目的。该方法需要以某种方式将字节转换为字符;编码告诉它什么字节序列描述了哪些字符。您需要确保编码与资源数据的编码相匹配。

实体引用是一个 SGML/XML 事物。 SGML 和 XML 不是编码;它们是标记语言语法。 stringWithContentsOfURL:encoding:error: 及其同类不会尝试以任何方式解析字符序列(语法),而这是它们转换一个字符序列(实体引用)时必须做的事情转换为不同的实体(实体,实际上意味着单个字符,即被引用)。

您可以使用 the CFXMLCreateStringByUnescapingEntities function 将实体引用转换为未转义字符。 。它接受一个 CFString,即 NSString ( toll-free bridging ),并返回一个 CFString,即 NSString。

关于iPhone SDK - HTML 源代码中的 stringWithContentsOfUrl ASCII 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2310644/

相关文章:

iphone - AudioQueue 录制音频样本

iphone - 如何使用 URI 方案向事物添加任务?

objective-c - iOS 5, Storyboard,ARC : Navigation Controller doesn't work in custom delegate

cocoa - 什么是 NSAboutURL 协议(protocol)类

iphone - 处理 HTTP post json 请求的 Web 服务器

iphone - 多行的 UISegmentedControl 文本?

iphone - 将数组的内容写入文本文件

ios - 如何更改 UITableView 中选定单元格的颜色?

cocoa - AMPathPopUpButton 类在哪里声明?

objective-c - EDMessage 示例代码?