【问题标题】:Url encodings with greek characters带有希腊字符的 URL 编码
【发布时间】:2011-10-07 09:07:49
【问题描述】:

我将页面的 html 源代码获取到这样的 NSString

NSString* url = @"example url";
NSURL *urlRequest = [NSURL URLWithString:url];
NSError *err = nil;
NSString *response = [NSString stringWithContentsOfURL:urlRequest encoding:kCFStringEncodingUTF8 error:&err];

响应的一部分类似于:2 \u00cf\u0083\u00cf\u0087\u00cf\u008c\u00ce\u00bb\u00ce\u00b9\u00ce\u00b1

如何在 NSString 响应中显示希腊字符?

页面的编码是“charset=iso-8859-7”

【问题讨论】:

  • 为了演示这个问题,您能否在上面的示例中提供一个有效的 http:// 样式 URL?另外,您知道编码是“iso-8859-7”,为什么要强制响应为 kCFStringEncodingUTF8?如果没有要在编码参数中显式传递的 iso-8859-7 常量,为什么不试试 stringWithContentsOfURL 的“usedEncoding”版本?
  • Michael Dautermann 我测试了所有可能的编码。编码:kCFStringEncodingUTF8 它就是其中之一。例如,有效的 url 是 [link](www.blog.gr)。我设法使它工作,但使用 utf-8 页面,但没有使用这个

标签: objective-c url encoding utf-8 internationalization


【解决方案1】:

啊,我现在明白你的问题了。

Apple 提供的 NSString 本机实现不知道如何处理 iso-8859-7 编码。

你有两个选择。

1)

尝试向 [NSString stringWithContentsOfURL: encoding: error:] 请求不同的编码,看看是否成功加载。我的第一次尝试是使用 NSISOLatin1StringEncoding。

2)

我发现一个第三方库(和 NSString 类别扩展)确实进行 iso-8859-7 转换。但是要访问 CkoCharset,您(或您的客户)将花费 290 美元。节省时间和麻烦可能是值得的投资。

https://chilkatsoft.com/charset-objc.asp

文档在这里:

http://www.chilkatsoft.com/refdoc/objcCkoCharsetRef.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-06
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多