iOS Url特殊符號編碼問題
開發中曾遇到棘手無法解決的問題,當時傳輸引數給後臺,後臺總是解析失敗。問題一直未解,最後還是換了其它方法曲線解困了。現在覺得應該是這個問題,url中帶了&這個特殊符號,單單使用encodeBase64、decodeBase64不行,還要使用encodeToPercentEscapeString這個處理一下。
url中是key value鍵值對,根據&進行分割多個key value,所以如果url像這樣
@”http://127.0.0.1/php/login.php?username=chang&123&password=admin“,
使用者名稱解析的是username為chang而不是chang&123。使用encodeToPercentEscapeString處理後,不會出現這樣問題。
//base64編碼 "加密"--- 可以把任意的二進位制資料 轉化成字串 方便在網路上傳輸
- (NSString *)encodeBase64:(NSString *)str{
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
return [data base64EncodedStringWithOptions:0];
}
//base64解碼 "解密"
- (NSString *)decodeBase64:(NSString *)base64Str{
NSData *data = [[NSData alloc] initWithBase64EncodedString:base64Str options:0];
return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
}
//進行url編碼 (但是不對漢字和空格進行編碼)
- (NSString *)encodeToPercentEscapeString: (NSString *) input
{
NSString *outputStr = (NSString *) CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)input,NULL,(CFStringRef)@"!*'();:@&=+ $,/?%#[]",kCFStringEncodingUTF8));
return outputStr;
}
相關文章
- URL編碼(傳遞特殊符號)符號
- url引數中有+、空格、=、%、&、#等特殊符號的問題解決符號
- HTML特殊符號及其編碼對照表HTML符號
- 特殊符號符號
- Html 特殊符號HTML符號
- url中的特殊字元問題字元
- mongo shell中特殊判斷符號轉義的問題Go符號
- Perl 的特殊符號符號
- HTML 中的特殊符號HTML符號
- markdown特殊符號語法符號
- CSS中的特殊符號CSS符號
- shell中的特殊符號符號
- 解決 requests 庫 URL 編碼問題
- scheme跳轉特殊字元編碼問題Scheme字元
- shell指令碼之特殊符號總結性梳理指令碼符號
- input禁止輸入特殊符號符號
- 萬用字元與特殊符號字元符號
- XML中輸入特殊符號XML符號
- html中的常用特殊符號HTML符號
- 如何在Mac上快速輸入特殊符號?Mac快速輸入特殊符號小技巧Mac符號
- ptyon 特殊處理 url 編碼與解碼,字元編碼轉化 unicode字元Unicode
- 偷懶寫指令碼中特殊符號的轉譯指令碼符號
- Oracle特殊符號的模糊查詢Oracle符號
- 特殊符號密碼處理 - 匯入匯出exp/imp符號密碼
- 包含中文字元的URL編碼問題(轉)字元
- EJB QL裡的〈符號問題符號
- 表格中輸入特殊符號和公式符號公式
- Mybatis xml特殊符號轉義寫法MyBatisXML符號
- linux_sed替換特殊符號Linux符號
- 批處理特殊符號 萬用字元與轉義符符號字元
- latex 中求和符號、箭頭問題符號
- 關於特殊符號&與& 的處理符號
- mybatis的mapper的特殊符號處理MyBatisAPP符號
- php中正規表示式中的特殊符號PHP符號
- aix, linux 解決特殊符號檔名:AILinux符號
- 在AIX,LINUX系統中訪問含特殊符號的檔案AILinux符號
- Java的識別符號與編碼規範Java符號
- 字串(暱稱)過濾特殊符號和表情(通用)字串符號