【问题标题】:iOS reads some characters oddly?iOS 会奇怪地读取某些字符?
【发布时间】:2013-07-30 00:46:17
【问题描述】:

在我的 iOS 应用程序中,我正在从服务器下载图像。对于服务器上的每张图片,我都会获取它的 URL(路径),记录它,然后将它添加到一个数组中。我的问题是服务器上的一个图像在文件名本身中有引号。所以,当我像这样记录 URL 时:

NSLog(@"New file path reads: %@", /*path on server*/);

日志输出如下:

新文件路径为:http://server.com/folder/\"Image\".jpeg

这是预期的,因为 (\") 转义码返回字符 (") 并且文件下载正常。接下来,我使用文件的路径创建一个 NSString 来显示文件的名称。我通过简单地替换文件名字符串中出现的“http://server.com/folder/”来做到这一点。对于所有其他文件,这可以完美运行,例如如果我在路径中有一个文件:

http://server.com/folder/Test.jpeg

新的显示名称为:

Test.jpeg

但是,当文件名/路径中包含引号时(如“Image”.jpeg),显示名称为:

%5c%22Image%5c%22.jpeg

所以,我的问题是:当我所做的只是替换“http://server.com/folder/”的出现时,为什么显示名称与我记录的 URL 不同,我该如何解决这个问题?

任何帮助将不胜感激,我到处寻找答案,但找不到任何有用的东西!

更新:我刚刚意识到这种情况发生在很多字符( 等)

【问题讨论】:

    标签: ios nsstring nsurl


    【解决方案1】:

    即 URL 编码。你可以像这样得到你想要的:

    [encodedString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
    

    【讨论】:

      【解决方案2】:

      在我看来,您很可能想使用NSURL 方法-lastPathComponent。它会为您正确地拆分 URL,并在此过程中执行取消转义。

      【讨论】:

        猜你喜欢
        • 2021-08-26
        • 1970-01-01
        • 2012-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多