Open ShannonChenCHN opened 7 years ago
对含有中文的 URL 字符串进行 URL 编码,可以使用 stringByAddingPercentEscapesUsingEncoding:
方法,但是该方法在 iOS 9 以后就被废弃了。取而代之的是 stringByAddingPercentEncodingWithAllowedCharacters:
方法。
在 How to encode a URL in Swift 文中,作者分析可能是因为 stringByAddingPercentEscapesUsingEncoding:
方法会对整个 URL 进行编码,而导致有些不需要编码的部分也被处理了,而 stringByAddingPercentEncodingWithAllowedCharacters:
方法可以更精确地指定某段内容需要编码。
NSString *encoededURLString = [urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
需要注意的是,不要对一个 URL 重复进行 URL编码,否则会导致解析失败。
Control + command + 空格键
Unicode 标准为世界上几乎所有的书写系统里所使用的每一个字符或符号定义了一个唯一的数字。这个数字叫做码点
(code points),以 U+xxxx
这样的格式写成,格式里的 xxxx
代表四到六个十六进制的数。比如,U+0041
(十进制是 65)这个码点代表拉丁字母表(和 ASCII 一致)里的字母 A
;U+1F61B
代表名为“伸出舌头的脸”的 emoji,也就是 😛。
默认情况下,Clang 会把源文件看作以 UTF-8 编码的。只要你确保 Xcode 以 UTF-8 编码保存文件,你就可以直接用字符显示程序插入任意字符。如果你更喜欢用码点,最大到 U+FFFF 这个范围内的码点你可以以 @"\u266A"(♪)的方式输入,BMP 外其它平面的码点则以 @"\U0001F340"(🍀)的方式输入。另外,C99 不允许标准 C 字符集里的字符用通用字符名(universal character name)来指定。