【问题标题】:Escaping special characters (ø, æ) for use inside a url转义特殊字符(ø、æ)以在 url 中使用
【发布时间】:2011-11-17 07:38:53
【问题描述】:

我尝试在 iOS 应用程序中显示带有 URL 源的图像,但它没有显示出来。

图片的url是实时示例路径。

使用以下 Objective-C 代码转义此字符串时:

 NSString *url= [(NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)originalpath, NULL, CFSTR("øæ"), kCFStringEncodingUTF8) autorelease];

结果是(带有øæ的编码):live xml path

我所有存储 URL 的文件都使用文本编码 (UTF-8)。

如何以正确的方式转义 URL,以便显示图像?

【问题讨论】:

    标签: iphone objective-c xcode


    【解决方案1】:

    不要用ascii编码试试

    NSString *URLString = [yourImagepath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSURL *url = [NSURL URLWithString:URLString];
    

    希望对你有所帮助。

    【讨论】:

    • 感谢 Zohaib 先生。优秀的解决方案。效果很好。
    • 很抱歉堆栈溢出不允许多次up,这个答案真的值得。
    【解决方案2】:

    我相信您需要先转义您的 url 字符串,然后再将其用作 url...

    NSString *URLString = [yourImagepath stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
    NSURL *url = [NSURL URLWithString:URLString];
    

    【讨论】:

    • 投反对票:这正是该帖子的作者所做的 - 并且在问题的文本中也可见......
    【解决方案3】:

    在 iOS 上遇到与德语变音符号相同的问题。 NSURL 类别 NSURL+IFUnicodeURL 为我解决了这个问题,不要被那里的 C 代码数量吓到,它隐藏得很好:)

    【讨论】:

    • 兄弟,我应该在我的项目中添加两个文件 NSURL+IFUnicodeURL(.h 和 .m)。下载的文件中包含太多文件。请指导我完成:)
    • 只需删除项目中的所有内容,包括IDNSDK 文件夹。这包含实际的 Unicode 转换库,该类别在内部使用它们。
    猜你喜欢
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 2018-01-28
    • 2018-10-24
    • 2012-05-31
    • 1970-01-01
    • 2017-05-18
    • 2012-06-02
    相关资源
    最近更新 更多