1. 程式人生 > >ios url中帶中文的解決方案

ios url中帶中文的解決方案

蒐集資料整理後得出解決方法:

一,使用NSString的方法:

NSString* string2 = [string1 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

//這個方法在驗證時出錯,慎用

NSString* string1 = [string2 stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

二、使用CFStringRef的方法

sUrl = (NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)sUrl, nil, nil, kCFStringEncodingUTF8);

 如果在所有的類裡都要用到這個方法,可以寫成category,然後在標頭檔案import "NSString+URL.h" 即可呼叫.

.h檔案:

@interface NSString (URL)
- (NSString *)URLEncodedString;
@end

.m檔案:

#import "NSString+URL.h"


@implementation NSString (URL)


- (NSString *)URLEncodedString
{
    NSString *encodedString = (NSString *)
    CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                            (CFStringRef)self,
                                            (CFStringRef)@"!$&'()*+,-./:;

[email protected]_~%#[]",
                                            NULL,
                                            kCFStringEncodingUTF8);
    return encodedString;
}
@end

但上述兩個方法,都不會處理URL中的保留字元,如果要處理保留字元,推薦使用Google的objective c 工具庫 GTMNSString+URLArguments來處理:

http://code.google.com/p/google-toolbox-for-mac/source/browse/trunk/Foundation/GTMNSDictionary%2BURLArguments.h

相關推薦

ios url中文解決方案

蒐集資料整理後得出解決方法: 一,使用NSString的方法: NSString* string2 = [string1 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; //這個方法在

nginx url中文不能訪問

title: nginx url中帶中文不能訪問 date: 2017-12-18 16:29:00 categories: - Android tags: - nginx - shell - 前端 解決nginx 部署,url中帶中文不能訪問 利用rz命令上傳w

iOS URL含有中文和轉義字元時的處理

今天發現一個蛋疼的問題,服務端返回的urlString裡面有時含有中文,使用 [NSURLURLWithString:urlString]生成URL物件時,iOS客戶端不能正確進行網路請求,網上找到的URLEncode方法又不能完全解決問題.    方法1: NSS

ios開發資料庫升級解決方案

在iOS開發中,經常會用到sqlite,在app迭代過程中,可能會有需求變更,需求的改變可能會影響資料庫結構的改變;那麼在不丟失原有資料的同時,又要修改資料庫結構,就要進行資料遷移。 我的做法是本地儲存一個app版本號,每次app啟動都會與Info.plist裡面的版本號比

URLEncoder和URLDecoder;cookie儲存特殊字元以及URL亂碼問題解決方案

cookie的特殊字元的編碼和解碼來解決亂碼問題;   編碼: protected void doGet(HttpServletRequest request, HttpServletRespo

ios url含有中文問題

1 使用 stringByAddingPercentEncodingWithAllowedCharacters 例如:使用方法 NSURL *url = [NSURL URLWithString:[valueString stringByAddingPerc

URL傳遞中文引數時傳遞失敗的解決方案

環境:Tomcat 問題描述:使用 <a> 標籤的 herf 來傳遞頁面的引數時,英文正常,中文失敗 原因分析:使用 Tomcat 在URL中傳遞引數,是通過 HTTP 報頭來傳

spring mvc關於url傳遞中文亂碼的解決方法

般的 har rac color nco bytes utf8 int span 在傳值過程中,也是亂碼出現的頻繁地。先不說到底是什麽場景了,通常常用的方案有如下幾個 配置指定的filter <!-- 配置請求過濾器,編碼格式設為UTF-8,避免中文亂碼-->

iOS開發 字串中文的注意!!!

說一下我自己遇到的問題吧,歡迎評論增加! 1、使用AFNetworking下載檔案,下載連結中包含中文,下載失敗 解決方法:除正常校驗下載連結外,增加一個編碼的過程 NSCharacterSet *characterSet = [NSCharacterSet URLQueryAllo

在Winform遮蔽UnityWebPlayer的右鍵以及自Logo解決方案整理

文章寫的非常好, 完美解決問題:https://www.cnblogs.com/fengshen/p/Unity3D.html 根據專案的需要,對已經完成的Unity三維模型以及遊戲要使用Winform進行包裝,也就是使用Winform做一層外殼。因此在展示Unity的時候使用到了UnityWeb

ubuntumendeley無法使用中文解決方案

Mendeley跨平臺,免費的優點足以讓人愛上它,但是該文獻管理器在ubuntu系統下無法進行中文註釋,之前應用的是一個別人編譯好的舊版本deb包,可以中文輸入,但是那個版本在1920*1080的14“的筆記本上做筆記處字型很小,新的版本1.19改變了這種狀況,調大了字型,所以又需要在新版本

LATEX section不能寫中文解決方案

在用latex做PPT的時候遇到一個奇葩的問題,section與subsection中不能寫中文。針對這個問題,查閱了很多部落格,其中印象較深的是是這兩篇部落格 一、LaTeX技巧474:\section{}命令中不能使用中文-一經典錯誤處理建議 二、LaTeX的section顯示

js點選事件在ios失效的解決方案

ios中不允許將點選事件繫結在document或者body上,如果繫結上的話將會失效。解決方案: 例如: $(document).on(‘click’, ‘#content’, function ()}… //無效 第一種: 改為: 用#content外面的標

vue-router 在微信瀏覽器操作history URl未改變的解決方案

問題描述: 在PC端和手機瀏覽器中router.replace() or router.push()能夠正常使用,頁面的地址和頁面都正常顯示;但是在微信中,從/a頁面通過router.push('/b')跳轉到/b頁面後,頁面正常,但是複製瀏覽器的地址會發現其地址仍為/a;

url中文導致The valid characters are defined in RFC 7230 and RFC 3986解決辦法

報錯如下: java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986

URL傳遞中文解決方式

在URL中傳遞中文的解決方式 2015年05月13日 17:13:55 thinkinglink 閱讀數:10321 標籤: URL編碼中文編碼亂碼解決 更多 個人分類: web前端 在URL中傳遞中文的解決方式 1.第一種

php 使用$_SERVER["REQUEST_URI"]獲取url中文亂碼的解決辦法

$request_uri = $_SERVER["REQUEST_URI"];//獲取當前頁url var_dump(urldecode($request_uri)); 中文等自動urlenco

HttpClient 4.5 重定向到中文URL出現亂碼的解決方案

一、問題描述: 遇到某個 URL A,請求時發現會重定向到某個包含了中文字元的 URL B。原以為只要 HttpClient 開啟了自動重定向的功能,下載 A 指向的頁面輕而易舉,結果卻出乎意料。HttpClient 在獲取重定向後的 URL B 時出現了中文

使用httpclient下載圖片時,url含有中文字元,導致下載失敗的解決方法

先說解決方法吧: 修改tomcat的server.xml檔案,在Connector標籤中加上URLEncoding引數 <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThre

iOS WebViewUrl包含中文的解碼

因為專案需求需要顯示城市 但發現請求下來是下面 http://www.xxx.cn/mobile/index.php?city_id=324&cityname=%E6%AD%A6%E6%B1%89 嘗試這個 -(void)webViewDidFinishLoad: