【发布时间】:2011-12-28 04:30:34
【问题描述】:
我正在尝试从网页转换一些特殊字符,例如ä、ö、ü、α、μ、α、ο、ι 和其他字符。当我使用 ASIHTTPRequest 下载页面时,我得到一些代码而不是字符本身。示例:ä = \u00E4μ = \u03BCα = \u03B1
如果我使用[NSString stringWithContentsOfURL:aNSURL encoding:NSASCIIStringEncoding error:nil];,也会发生这种情况
我尝试了不同的可用编码,但它们都不适用于上述示例。例如:NSUnicodeStringEncoding 我得到了一些奇怪的“中文”字符,NSASCIIStringEncoding 我得到了这些数字和字母。
奇怪的是,如果我查看源代码,在像 safari 这样的网络浏览器中,网页,一切都很好,正常的 HTML 字符实体如:ä = ä
有没有办法把这些编码的字母转回来?
谢谢
编辑
对不起,我忘了提到上面浏览器的源代码。
我刚刚在这个网站上注意到:link 十六进制 HTML 实体与我使用 tis 代码得到的非常相似。示例:ä = äμ = μα = α
如您所见,它们非常相似。只是小写,0 被替换为一个x,并在开头添加&#,最后添加;。
我只需要编写一些小代码来将数字和字母转换为十六进制实体,这不会是一个大问题。然后只需使用 HTML 实体转换器即可完成。
不管怎样,非常感谢你再次帮助我
肖恩
【问题讨论】:
-
你是说字符串包含'\'、'u'、'0'、'0'、'E'和'4'这六个字符,而你只想包含一个字符'ä'?另外,你试过
NSUTF8StringEncoding吗? -
@rob 是的,该字符串包含六个字符,结果我刚刚赢得了那个单个字符。
NSUTF8StringEncoding没有任何区别 -
在这里查看我的答案:stackoverflow.com/questions/7860867/…
标签: objective-c cocoa nsstring asihttprequest