2012年3月4日 星期日

ISAPI_Rewrite 3.1 中文URL亂碼的解決方案


以前在用 ISAPI_Rewrite  1.3 版的時候 只要對URL進行 UrlEncode 處理。就可以正常接收到中文.
但是現在換為 3.1版以後 GB2342 的接收頁面就是亂碼了。
現在換用了 ISAPI_Rewrite 3.x 發現編碼後的字元會變成亂碼,如果直接使用中文不編碼,則會被格式化為GBK字串。
因為 ISAPI_Rewrite  默認是以 UTF-8 的編碼接收的。
解決方案是

翻了手冊,發現有一個配置參數可以解決該問題:

nounicode|NU

If NU flag is set, transformation from Unicode to UTF-8 will not take place and all Unicode characters remain encoded in %xx format.
nounicode|NU

如果標誌設置,從Unicode轉換為UTF-8不會發生,所有的Unicode字元編碼為%xx的保持格式


在你的RewriteRule 規則後臺添加 NU 即可恢復正常。

關於ISAPI_Rewrite中文變亂碼解決方法,無論何種情況,統一解決思想:

1
、在傳輸URL時,將中文進行urlencode,這樣是沒錯的。

2
、如果是ISAPI_Rewrite 3.x 只需增加 NU 參數即可。

配置舉例:

傳遞的URL地址:

http://tech.cncms.com/search-%C6%BB%B9%FB.html

相應的RewriteRule

RewriteRule ^/search-(.*)\.html$ /search\.do\?keyword=$1 [QSA,NU,PT,L]

最後,

無論使用哪家的產品,多看看產品手冊是沒錯的,一般問題與使用方法在手冊中都有完整的講解。比如這次的 ISAPI_Rewrite 就是一個很好的說明。

Google Maps API 申請方式變更


簡介:近日Google已變更其Maps API的申請方式,改由所謂的「APIs Console」進行所有API的管理。
  近日Google已變更其Maps API申請,若您現在透過早先的方法申請API Key應該會得到底下的訊息畫面。

Google不再提供先前的申請API Key方式
  大意是Google不再提供該種方式申請API Key ,而是改由所謂的「APIs Console」進行所有API的管理。
  在Google Maps API 的部份,官方網站目前是建議使用新版本(v3)的API 進行開發,若您仍希望繼續使用v2 的版本進行開發,您可能需要進行部份設定的修改,底下是設定的流程:
  1.使用Google帳號登入APIs Console https://code.google.com/apis/console),並將Google Maps API v2的選項打開,如下圖所示:

Google Maps API v2設置
  2.依據您的需求產生對應的Google Maps API Key ,若您是要繼續採用v2 版本的方式使用Google Maps API ,請選擇「Create new Browser Key」,之後將產生的Key 依據過去的方式填入對應的位置即可。

注意V2版本對應的選項
  需要注意的是:
  1.依目前觀察,已經在使用中的Google Maps API Key 是可以繼續使用,並不會因為產生Key 的方式改變而有所變更。
  2.新的方式會統計並限制使用量(目前是限制每天25,000 次查詢),若超過用量則需給付相關費用才可繼續使用。