解決URL中文亂碼問題

來源:互聯網
上載者:User

標籤:合成   請求   mutable   cape   串連   接收   text   沒有   客戶   

在做一個HTTPS串連時, 要用戶端合成一段HTTPS地址

如果地址含中文的話程式會crash, 檢查發現原來是中文沒有轉碼的原因

 

在NSString庫裡面找到了下面兩個方法

- (NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)encoding- (NSString *)stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)encoding

試了下, 有效

 1 NSString* string1 = @"https://www.cloudsafe.com/檔案夾"; 2  3 NSString* string2 = [string1 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 4 NSString* string3 = [string2 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 5  6 NSString* string4 = [string2 stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 7 NSString* string5 = [string3 stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 8  9 NSString* string6 = [string4 stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];10 NSString* string7 = [string5 stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

輸出string1-7結果如下

string1:https://www.cloudsafe.com/檔案夾string2:https://www.cloudsafe.com/%E6%96%87%E4%BB%B6%E5%A4%B9string3:https://www.cloudsafe.com/%25E6%2596%2587%25E4%25BB%25B6%25E5%25A4%25B9string4:https://www.cloudsafe.com/檔案夾string5:https://www.cloudsafe.com/%E6%96%87%E4%BB%B6%E5%A4%B9string6:https://www.cloudsafe.com/檔案夾string7:https://www.cloudsafe.com/檔案夾

 

簡單說下我是如何使用的:

 

在合成URL後, 給整個String轉碼兩次

1 NSMutableString *address = [[NSMutableString stringWithString:SetNiChengStringWithoutUserNameAndNiCheng] mutableCopy];2     address = [[address stringByAppendingString:app.name] mutableCopy];3     address = [[address stringByAppendingString:@"/"] mutableCopy];4     address = [[address stringByAppendingString:_nameTextField.text] mutableCopy];5     address = [[address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] mutableCopy];6     address = [[address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] mutableCopy];

 

伺服器端如何只是簡單儲存, 伺服器接收資料後可以不用轉碼成中文

當用戶端請求這部分資料時, 由用戶端自己解碼就好了

擷取到字串後解碼一次就可以正常顯示為中文了:

1 str = [str stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

 

解決URL中文亂碼問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.