手机
当前位置:查字典教程网 >编程开发 >IOS开发 >IOS URL中文乱码问题解决方案
IOS URL中文乱码问题解决方案
摘要:IOS解决URL中文乱码问题解决在做一个HTTPS连接时,要客户端合成一段HTTPS地址如果地址含中文的话程序会crash,检查发现原来是中...

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中文乱码问题解决方案】相关文章:

xcode8提交ipa失败无法构建版本问题的解决方案

iOS应用开发中图片的拉伸问题解决方案

兼容iOS 10 升级xcode8出现的问题及一些适配问题的解决方案

iOS实现富文本编辑器的方法详解

ios8 beta4微信闪退bug解决方法

iOS开发中最有用关键的代码整合

关于iOS导航栏返回按钮问题的解决方法

iOS10适配之权限Crash问题的完美解决方案

IOS CoreAnimation中layer动画闪烁的解决方法

iOS中Xcode 8 日志输出乱码问题的解决方法

精品推荐
分类导航