昨天在瀏覽自己的 blog 時,發現如果 snip 的名稱中若包含中文的話,就會無法觀看。經簡單測試後,排除了資料庫部份的問題,於是我便將矛頭指向處理 request URL 的 filter 和 servlet。
Snipsnap 在處理 request 時,會將其相關資訊(包括 header,query string,request URI,path info)以 ISO-8859-1 取碼後再用 UTF-8 編碼。這在 jetty 底下正常,但到 resin 下就會出問題,因為 resin 本身也會對 request 做處理。所以同一個 request 做兩次編碼,就吐血了。
解決辦法就是把 Snipsnap 對 request 編碼的部份註解掉,一切就正常了,這是繼 RSS 亂掉後另一個整合上較重大的 bug。我想經過這兩三天的測試,應該沒有什麼其他的大問題了。
另,國際化資源檔翻譯已完成 60%。