这篇文章主要介绍了IOS 解决URL中文乱码问题解决方案的相关资料,需要的朋友可以参考下
IOS 解决URL中文乱码问题解决
在做一个HTTPS连接时, 要客户端合成一段HTTPS地址
如果地址含中文的话程序会crash, 检查发现原来是中文没有转码的原因
在NSString库里面找到了下面两个方法
- (NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)encoding
- (NSString *)stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)encoding
试了下, 有效
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];
输出string1-7结果如下
string1:https://www.cloudsafe.com/文件夹
string2:https://www.cloudsafe.com/%E6%96%87%E4%BB%B6%E5%A4%B9
string3:https://www.cloudsafe.com/%25E6%2596%2587%25E4%25BB%25B6%25E5%25A4%25B9
string4:https://www.cloudsafe.com/文件夹
string5:https://www.cloudsafe.com/%E6%96%87%E4%BB%B6%E5%A4%B9
string6:https://www.cloudsafe.com/文件夹
string7:https://www.cloudsafe.com/文件夹
简单说下我是如何使用的:
在合成URL后, 给整个String转码两次
NSMutableString *address = [[NSMutableString stringWithString:SetNiChengStringWithoutUserNameAndNiCheng] mutableCopy];
address = [[address stringByAppendingString:app.name] mutableCopy];
address = [[address stringByAppendingString:@"/"] mutableCopy];
address = [[address stringByAppendingString:_nameTextField.text] mutableCopy];
address = [[address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] mutableCopy];
address = [[address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] mutableCopy];
服务器端如何只是简单存储, 服务器接收数据后可以不用转码成中文
当客户端请求这部分数据时, 由客户端自己解码就好了
获取到字串后解码一次就可以正常显示为中文了:
str = [str stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
沃梦达教程
本文标题为:IOS URL中文乱码问题解决方案
基础教程推荐
猜你喜欢
- iOS开发使用XML解析网络数据 2022-11-12
- IOS获取系统相册中照片的示例代码 2023-01-03
- Android开发Compose集成高德地图实例 2023-06-15
- iOS开发 全机型适配解决方法 2023-01-14
- iOS中如何判断当前网络环境是2G/3G/4G/5G/WiFi 2023-06-18
- MVVMLight项目Model View结构及全局视图模型注入器 2023-05-07
- Android Compose自定义TextField实现自定义的输入框 2023-05-13
- Flutter进阶之实现动画效果(三) 2022-10-28
- Android实现短信验证码输入框 2023-04-29
- iOS Crash常规跟踪方法及Bugly集成运用详细介绍 2023-01-18