1. 程式人生 > >iOS字串中特殊字元的編碼與解碼

iOS字串中特殊字元的編碼與解碼

1.網路請求時url中攜帶@等特殊字元的解決方案 a.對url進行特殊字元編碼 - (nullable NSString *)stringByAddingPercentEncodingWithAllowedCharacters:(NSCharacterSet *)allowedCharacters NS_AVAILABLE(10_9, 7_0); b.對url進行特殊字元解碼 @property (nullable, readonly, copy) NSString *stringByRemovingPercentEncoding NS_AVAILABLE(10_9, 7_0); ____SAMPLE____
[@"!*'();:@&=+ $,/?%#[]" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]];  //編碼 [@"!*'();:@&=+ $,/?%#[]編碼後的字串" stringByRemovingPercentEncoding];  //解碼 幾種編碼策略 / /返回一個包含字元的字符集允許在一個URL的使用者子元件。 +(NSCharacterSet *)URLUserAllowedCharacterSet NS_AVAILABLE(10 _9 7 _0); / /返回一個包含字元的字符集允許在一個URL的密碼子元件。 +(NSCharacterSet *)URLPasswordAllowedCharacterSet NS_AVAILABLE(10 _9 7 _0); / /返回一個包含字元的字符集允許URL的子元件。 +(NSCharacterSet *)URLHostAllowedCharacterSet NS_AVAILABLE(10 _9 7 _0); / /返回一個包含字元的字符集允許URL的路徑元件。字元“;”是一種合法的路徑,但是建議最好是percent-encoded相容NSURL(-stringByAddingPercentEncodingWithAllowedCharacters:percent-encode任何‘;’字元如果你通過URLPathAllowedCharacterSet)。 +(NSCharacterSet *)URLPathAllowedCharacterSet NS_AVAILABLE(10 _9 7 _0); / /返回一個包含字元的字符集允許一個URL的查詢元件。 +(NSCharacterSet *)URLQueryAllowedCharacterSet NS_AVAILABLE(10 _9 7 _0); / /返回一個包含字元的字符集允許URL的片段元件。 +(NSCharacterSet *)URLFragmentAllowedCharacterSet NS_AVAILABLE(10 _9 7 _0); 編碼字元範圍
URLFragmentAllowedCharacterSet  "#%<>[\]^`{|} URLHostAllowedCharacterSet      "#%/<>[email protected]\^`{|} URLPasswordAllowedCharacterSet  "#%/:<>[email protected][\]^`{|} URLPathAllowedCharacterSet      "#%;<>?[\]^`{|} URLQueryAllowedCharacterSet     "#%<>[\]^`{|} URLUserAllowedCharacterSet      "#%/:<>
[email protected]
[\]^` PS:想要執行對非特殊字元做同樣的轉碼(例如’&’ , ’,’ , ‘.’等),請換用如下函式(但是已經在iOS9之後棄用了) NSString *encodeStr = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)originString, NULL, (CFStringRef)@"!*'();:@&=+ $,./?%#[]", kCFStringEncodingUTF8));

相關推薦

iOS字串特殊字元編碼解碼

1.網路請求時url中攜帶@等特殊字元的解決方案 a.對url進行特殊字元編碼 - (nullable NSString *)stringByAddingPercentEncodingWithAllowedCharacters:(NSCharacterSet *)allo

python求漢字字串長度以及預設編碼解碼格式設定

print(len('你好啊')) 結果為 3 一般漢字在uicode編碼格式中,一個漢字對應長度為1 在utf-8編碼格式中,一個漢字對應長度為3 我在剛開始寫的時候,在python3環境下,列表value裡,用的是:len(value[i].decode('u

Python2Python3的字元編碼解碼

轉載於:https://www.jianshu.com/p/19c74e76ee0a 編碼與解碼 編碼(encode):在Unicode中,每一個字元都有一個唯一的數字表示,那麼將Unicode字串轉換為特定字元編碼(ASCII、UTF-8、GBK)對應的位元組串的過程和規則就是編碼。

php去除陣列或字串特殊字元

去除陣列或是字串中的反斜槓 function stripslashes_deep($value) { $value = is_array($value) ? array_map('stripslashes_deep', $value) :

Python 2.x常見字元編碼解碼方面的錯誤及其解決辦法

Python 2.x中的字元編碼,設計的的確不好,導致初學者,甚至是即使用Python很長時間的人,都會經常遇到字元編解碼方面的錯誤。 下面就把一些常見情,儘量的都整理出來,並給出相應的解決辦法。 看此文之前 Python中字元編碼所涉及的背後邏輯(從你輸入字元,到

科大訊飛語音識別時字串特殊字元的處理

比如口算遊戲: 訊飛會返回:請回答[n2]78+11=? 此時我們要去掉[n2] 可做如下操作 String results = "[n2]78+11=?"; results = results.replaceAll("\\[" + "n2" + "\\]", "");

python 字元編碼解碼——unicode、str和中文:UnicodeDecodeError: 'ascii' codec can't decode

摘要:在進行python指令碼的編寫時,如果我們用python來處理網頁資料或者進行與中文字元有關的處理工作,經常出現這樣的出錯資訊:SyntaxError: Non-ASCII character '\xe6' in file ./filename.py on line

java的url 編碼解碼

下面就是它的輸出。需要注意的是這些程式碼應該以其他編碼形式被儲存而不是以ASCII碼的形式,還有就是你選擇的編碼形式應該作為一個引數傳給編譯器,讓編譯器能據此對原始碼中的非ASCII字元作出正確的解釋。 % javac -encoding UTF8 EncoderTest % java Enco

淺談python字元編碼轉碼

ASCII碼 ASCII碼就是機器能識別的單位元組編碼系統,它是單位元組的。 Unicode編碼 Unicode編碼是一種統一碼、萬國碼、單一碼,它能編碼任何國家的語言,Unicode編碼不管英文

Python3字符串的編碼解碼以及編碼之間轉換(decode、encode)

python3 encode 由於 表示 nic code .... 以及 mage 一、編碼 二、編碼與解碼 Python3中對py文件的默認編碼是urf-8。但是字符串的編碼是Unicode。 由於Unicode采用32位4個字節來表示一個字符,存儲和傳輸太浪費資

python2python3編碼解碼的區別

需要 顯示 數據類型 在屏幕上 nbsp gb2312 python2 想要 區別 python2中程序默認數據類型為ASCII, 所以需要先將數據解碼(decode)成為Unicode類型, 然後再編碼(encode)成為想要轉換的數據類型(gbk,utf-8,gb180

判斷一個數字(字串特殊字元的出現次數

第一種方法: (將數字轉化為字串,再)將字串分割為陣列,迴圈判斷陣列的每一項是否為這個字元(以‘1’為例) function patch(num){ var s=num.toString(); var arr = s.spl

GET請求關於中文的編碼解碼

問:有時候在特殊情況下,需要使用GET請求來傳遞引數,而傳遞的引數中有中文字元。如何直接傳遞過去,會導致亂碼問題,針對這個情況如何解決? 原因:在使用get請求傳遞引數時,需要依賴瀏覽器環境,由於我們在javascript中沒有做任何操作,完全依賴瀏覽器進行編碼後傳遞到後臺,一旦於後臺編碼格式不

Python 編碼解碼

Python2.x 和 Python3.x 中關於字元編碼的問題 1. 一些基本的概念 2. 編碼格式 3. 編碼和解碼 4. Python3 的預設編碼

程式語言計算機字元編碼

筆者學習計算機的時候,經常會遇到與字元編碼相關的問題,所以為了方便查詢,就對常見字元編碼的來源,分類,內容等做了一下總結。筆者先簡單寫一部分,等後續遇到問題的時候再慢慢完善吧。 筆者在查詢相關資料的時候發現與字元編碼相關的內容太多了,所以就只列出主要框架,具體的細節就不深究了(想看細節的

JavaScript 使用反斜槓來向文字字串新增特殊字元

插入特殊字元 反斜槓用來在文字字串中插入省略號、換行符、引號和其他特殊字元。 請看下面的 JavaScript 程式碼: var txt="We are the so-called "Vikings" from the north." document.write(t

url特殊字元被轉義成編碼後如何處理

開發時有時服務端返回的json中包含url,url中可能含有一些特殊字元,這些特殊字元在傳輸的過程中可能會被轉義成編碼。這時候我們拿到手裡要如何轉換回去呢,先看下那些字元可能會被編碼 例: String url = "http://www.baidu.c

Python字串編碼解碼(encodedecode)

首先要搞清楚,字串在Python內部的表示是unicode編碼,因此,在做編碼轉換時,通常需要以unicode作為中間編碼,即先將其他編碼的字串解碼(decode)成unicode,再從unicode編碼(encode)成另一種編碼。 decode的作用是將其他編碼的字串轉換成unicode編碼,如str1

JS 和 Java URL特殊字元編碼方式

 JavaScript   1.  編碼 escape(String)     其中某些字元被替換成了十六進位制的轉義序列。    解碼 unescape(String)     該函式的工作原理是這樣的:通過找到形式為 %xx 和 %uxxxx 的字元序列(x

python3編碼解碼之Unicodebytes

今天玩Python爬蟲,下載一個網頁,然後把所有內容寫入一個txt檔案中,出現錯誤;TypeError: write() argument must be str, not bytesAttributeError: 'URLError' object has no attri