有網友建議我的中文編碼解析工具應該要加上UTF-8的URL Encoding,讓我驚覺自己的孤陋寡聞。
當然,背後是有故事的... 前些時候,朋友跟我在討論在T-SQL中實作UrlEncode的方法。UDF寫出來了,卻發現不能用! 最後才搞清楚原來提供Web Interface的廠商,採用的是UTF-8的UrlEncoding,也就是"新增"要轉成%e6%96%b0%e5%a2%ae的格式,我用UDF轉出的%u65b0%u589e格式無法被解析。當時我認定在IE、Firefox中用Javascript escape()轉出的是%u65b0這種Unicode格式,舊時代ASP的UrlEncode則會吐出%b7%73這種BIG5格式,從來沒看過有人用這種"UTF-8式的UrlEncoding",這廠商會不會太孤僻自閉了點?
今天收到網友的留言,才驚覺還真有人在使用這種格式呢!!
沒看過不代表沒有,不知道不代表不存在! 面對技術議題,永遠要保持謹慎的態度與敬畏的心,才不會淪為別人眼中臭屁又愛說大話的死老頭。
好了,吾日三省吾身時間結束。中文編碼解析工具1.2版來了,沒啥大改革,就是多了UTF-8的UrlEncoding。
程式下載
補充一下在.NET中,可以用System.Web.HttpUtility.UrlEncode(str, Encoding.UTF8)的方式輕鬆轉出UTF-8式的UrlEncoding,但如果要轉%u65b0這種格式,可不是用HttpUtility.UrlEncode(str, Encoding.Unicode),而是用另一個Method HttpUtility.UrlEncodeUnicode(str)。
来自: http://blog.darkthread.net/blogs/darkthreadtw/archive/2007/09/07/1040.aspx