2011年9月11日 星期日

URL含有中文的處理方法

最近嘗試使用objective-c 2.0撰寫程式去呼叫google places api。
使用ASIHTTPRequest這個套件去呼叫api位址。

https://maps.googleapis.com/maps/api/place/search/json?location=25.04842,121.51707&radius=1000&language=zh-TW&name=餐廳&sensor=false&key=*****************************

假設要在台北車站附近找餐廳,在未經處理之前作法是:

NSString *requestURL = [[NSString alloc] initWithFormat: @"https://maps.googleapis.com/maps/api/place/search/json?location=%@&radius=%@&language=%@&name=%@&sensor=%@&key=%@",location ,radius, language, name, sensor, key, nil];

這樣會導致bad url

escape之後:

NSString *requestURL = [[[NSString alloc] initWithFormat: @"https://maps.googleapis.com/maps/api/place/search/json?location=%@&radius=%@&language=%@&name=%@&sensor=%@&key=%@",location ,radius, language, name, sensor, key, nil] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

就能夠正常運作了

google問題過程中找到的code,先記一下連結位址,以後可能有用
http://freequartz.googlecode.com/svn/trunk/CoreFoundation/CFStringEncodingExt.h

2011年9月3日 星期六

Mac上的套件管理工具 - Homebrew

原本只是想找在Xcode4裡有沒有自動產生@property的方法,結果找到Code Formatting in Xcode 4

這一篇講述Xcode4裡的程式碼重整方法。不過文章中的"port install"和"brew install"引起了我的興趣

於是索性google一下,原來這跟Linux上的apt用法相當類似,在裝一些開源程式的時候相當好用。

 

參考資料

Homebrew - MacOS下新的軟件管理包工具

Homebrew: 新一代 OSX 套件管理工具