Rac*_*eur 1 encoding objective-c urlencode nsstring ios
我试图获取可能包含特殊字符和表情符号的UITextField的内容,并将其转换为我可以在GET请求中传递给PHP服务的内容.
如果我根本不对字符串进行编码,那么emojis就会很好地显示(我可以在数据库中看到它们并且它们会正确地回复给我)...但是如果我添加了特殊的字符(〜!@#$%等等) .)GET请求扼流圈.
所以我通过url编码器运行字符串:
[commentText stringByAddingPercentEscapesUsingEncoding:NSNonLossyASCIIStringEncoding];
Run Code Online (Sandbox Code Playgroud)
我正在使用NSNonLossyASCIIStringEncoding来正确地运行emojis,这有效,但使用它来编码会返回一个nil字符串.事实上,唯一没有返回nil的编码是UTF8,但是这会使用百分比转义来扩展表情符号unicode.
我该怎么做呢?我是否必须为此案例编写自己的字符串替换,或者是否有iOS方法可以实现,我没有看到?
干杯,
克里斯
用它来逃避表情符号:
NSString *escapedEmoji = [NSString stringWithCString:[emojiString cStringUsingEncoding:NSNonLossyASCIIStringEncoding] encoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)
这对于unescape表情符号:
NSString *unescapedEmoji = [NSString stringWithCString:[escapedString cStringUsingEncoding:NSUTF8StringEncoding] encoding:NSNonLossyASCIIStringEncoding];
Run Code Online (Sandbox Code Playgroud)
NSNonLossyASCIIStringEncoding以stringByAddingPercentEscapesUsingEncoding:回报nil,因为你正在传递的字符串不是ASCII.使用NSUTF8StringEncoding百分比可以逃避表情符号字符,这就是我期望的结果.如果您的服务器端中间件没有自动从查询字符串中取消表情符号,那么您应该在服务器端代码中执行此操作,如果它导致上游问题.
| 归档时间: |
|
| 查看次数: |
7457 次 |
| 最近记录: |