2013年7月2日 星期二

程式處理網址的encoding跟decoding問題

因為網址列不能存在一些特殊符號,所以這些符號會使用﹪當作逃脫字元來處理
例如%7 = ~
%09 表示 Tab
%20 表示 (1sp) 即一個space鍵
%22 表示 "
%23 表示 #
%25 表示 %
%26 表示 &
%28 表示 (
%29 表示 )
%2B 表示 +
%2C 表示 ,
%2F 表示 /
%3A 表示 :
%3B 表示 ;
%3C 表示 <
%3D 表示 =
%3E 表示 >
%3F 表示 ?
%40 表示 @
%5B 表示[
%5C 表示 \
%5D 表示]
%7C 表示
%7E 表示 ~

在objective-c用下列二個方法做網址的編碼

stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding 會將網址以 UTF-8來編碼。
NSString *encodeURL = [URL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"encode URL: %@", encodeURL);

stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding 會將被編碼的文字以 UTF-8 解碼。
NSString *decodeURL = [encodeURL stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
NSLog(@"decode URL: %@", decodeURL);
 

沒有留言:

張貼留言