url中經(jīng)常出現(xiàn)中文晦闰,想到最直接的辦法是把url轉(zhuǎn)碼,如下:
NSString *urlString = @"192.168.1.1/app/index.html#/serviceCase/制造業(yè)";
urlString = [urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet];
NSCharacterSet 中不同方法 處理的特殊字符不一樣:
URLFragmentAllowedCharacterSet "#%<>[\]^`{|}
?URLHostAllowedCharacterSet? ? ? "#%/<>?@\^`{|}
?URLPasswordAllowedCharacterSet? "#%/:<>?@[\]^`{|}
?URLPathAllowedCharacterSet? ? ? "#%;<>?[\]^`{|}
URLQueryAllowedCharacterSet? ? "#%<>[\]^`{|}
?URLUserAllowedCharacterSet? ? ? "#%/:<>?@[\]^`
iOS 9.0以前用這個方法:stringByAddingPercentEscapesUsingEncoding: ?犬庇。
可能項目中用這種方法轉(zhuǎn)碼了 發(fā)現(xiàn)webview還是加載不出來,網(wǎng)上找個幾種方法還是不行,怎么辦呢,這時候你就要搞清楚 系統(tǒng)的轉(zhuǎn)碼方法到底轉(zhuǎn)了些什么東西蛹疯,上面寫的很清楚,不管你是用?URLFragmentAllowedCharacterSet還是URLPasswordAllowedCharacterSet,還是其他等等考抄,#號都當(dāng)著特殊字符轉(zhuǎn)碼了,而你的網(wǎng)頁中#可能是個錨點不需要轉(zhuǎn)碼蔗彤,不需要轉(zhuǎn)碼的你轉(zhuǎn)了網(wǎng)頁肯定加載不出來川梅。遇到這種情況要和前端工程師協(xié)商,如果是因為中文編碼不支持那只轉(zhuǎn)中文就行了然遏,如下:
NSString *?parm = [@"制造業(yè)"?stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]];
NSString *link = [NSString stringWithFormat:@"192.168.1.1/app/index.html#/serviceCase/%@",parm];
這樣寫就可以挑势。在你的項目中可能不止是#,/ %等有可能出現(xiàn)啦鸣,首先搞清楚具體哪些是要轉(zhuǎn)潮饱,哪些不要轉(zhuǎn)。目的明確了诫给,對癥下藥香拉。