Apple开发_URL中文乱码问题

1、场景描述

  • 1.1 HTTPS拼接地址

    • 如果地址含中文的话程序会crash,所以需要编码使其不包含中文。
  • 1.2 文件地址为乱码

    • 需要用到文件地址中的文字,乱码不友好。

2、编码与解码

  • 2.1 测试代码

NSString *string1 = @"https://www.cloudsafe.com/文件夹";

NSString *string2 = [string1 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *string3 = [string2 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSString *string4 = [string2 stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *string5 = [string3 stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSString *string6 = [string4 stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *string7 = [string5 stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

CHLog(@"string1 == %@", string1)
CHLog(@"string2 == %@", string2)
CHLog(@"string3 == %@", string3)
CHLog(@"string4 == %@", string4)
CHLog(@"string5 == %@", string5)
CHLog(@"string6 == %@", string6)
CHLog(@"string7 == %@", string7)
  • 2.2 测试结果

    • 其中,string1 编码 2 次,成 string3,所以需要解码 2 次才看到中文 string7
    • 解码完成,连续解码对结果不会产生影响。
posted @ 2023-02-20 15:45  CH520  阅读(50)  评论(0编辑  收藏  举报