2012年9月25日 星期二

要怎麼把非英文的資料(中文)經由 XMLHttpRequest 送給 Tomcat 的 servlet 呢?

(06/04/2006)

這個週末在嘗試 Dojo 和 Yahoo! User Interface Library (YUI) 的時候,才突然發現之前的 AJAX 範例都沒有從 XMLHttpRequest 傳送中文的資料給遠端的 Tomcat servlet。 而發現的原因在於為 Dojo 和 YUI 所寫的程式中,其中一個範例是由 browser 送出 一個中文的(Big5)欄位資料到遠端的 Tomcat servlet 處理,而處理的結果卻是亂碼。這樣子一來就打亂了我的休假,連續兩個晚上測到凌晨一、兩點 (對一個老人來說,是很大的折磨)。目前找到的資料中,以
的文章比較有參考價值。尤其,OC’onner 的文章直接說明目前的傳送以及 encoding 的方式並沒有標準,完全要看你所使用的工具。看了這個說明之後,測試的方向 就比較明確一些。大概需要檢查的細節有:
  • 由 XMLHttpRequest 送出去的 URL:如果 URL 包含 Big5 的資料,XMLHttpRequest 會不會 encode,而且又是以何種方式 encode?
  • server 是如何解讀收到的 URL:目前知道 Tomcat (我的主要 servlet 的開發 平台)是採用 ISO-8859-1 編碼方式來接收,因此解碼的方式可以用 ISO-8859-1 來進行。但是,如果 browser 送過來的資料是以 UTF-8 編碼,那要怎麼辦呢?
目前,已經找出 Microsoft IE 6.x 和 Firefox 1.5.x 的解決方案了以及大概的原因,細節請看前一篇的 AJAX 入門。

沒有留言:

張貼留言