IOS - UTF-8转码问题

2016.07.06 21:45* 字数 61 阅读 921评论 0

IOS中提供的转码。

[utf8str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

 

转码后发现,与java的不一样。

原来IOS中转码的标准不一致,导致出现错误。

不过,可以使用下面的方法来替换,就OK了。

utf8str = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,

                                                                                        (CFStringRef)utf8str,

                                                                                        NULL,

                                                                                        CFSTR(":/?#[]@!$ &'()*+,;=\"<>%{}|\\^~`"),

                                                                                        kCFStringEncodingUTF8));

 

iOS网络请求返回的汉字在日志里会显示成\U63d0\U4ea4\U6210\U529f,用下面的脚本就可以把Unicode显示成汉字

#!/bin/sh

cmd="/usr/bin/env python -c 'print(\"\"\"$1\"\"\".lower().decode(\"unicode-escape\").encode(\"utf-8\"))'"

echo $cmd | sh

 

比如:把这个脚本命名为co,并使用chmod +x co添加可执行属性

使用co '\U63d0\U4ea4\U6210\U529f'就可以显示汉字了。

 

posted @ 2019-02-21 14:52  sundaysios  阅读(953)  评论(0编辑  收藏  举报