iOS 字符編碼

iOS 9之后蘋果推薦使用編碼方法

[str  stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLPathAllowedCharacterSet]]
  • 其中對(duì)NSCharacter?Set類就很值得研究
  • 此處用到URLPathAllowedCharacterSet并不在 NSCharacterSet.h類文件中

//    URLFragmentAllowedCharacterSet    "#%<>^`\[]{|}
//    URLPasswordAllowedCharacterSet    "#%<>^`\[]{|}/:?@
//    URLPathAllowedCharacterSet        "#%<>^`\[]{|};?
//    URLQueryAllowedCharacterSet       "#%<>^`\[]{|}
//    URLUserAllowedCharacterSet        "#%<>^`\[]/:?@
//    URLHostAllowedCharacterSet        "#%<>^`\{|}/?@
  • 對(duì)于中文、中文標(biāo)點(diǎn)符號(hào)以及空格都是要編碼的
  • 每個(gè)屬性后面對(duì)應(yīng)的特殊符號(hào)也都是要編碼的
  • emoji表情也是都要編碼的
  • 對(duì)于字母、數(shù)字英文標(biāo)點(diǎn)符號(hào)+-/* 都直接顯示不編碼
  • 其中對(duì)應(yīng)后面沒有提到的特殊字符大都不編碼
NSString *string = @"$&1111??aaaaa#";
NSString *unicode = [string stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLPathAllowedCharacterSet]];
屏幕快照 2019-03-29 16.25.53.png

打印結(jié)果:$&1111%F0%9F%98%86aaaaa%23
由此可以看出表情?? 和 # 是進(jìn)行編碼 的其他字符是不進(jìn)行編碼。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容