前幾天在完成一個ssh框架的項目時遇到一個小問題,情況是這樣的。
在action中定義了私有變量,並提供get(),set()方法,js代碼中就應該可以訪問它。於是我從js代碼中通過地址欄傳值給了action的相應變量,但是,如果變量值為中文的時候,在action中測試輸出則為“???”,而浏覽器地址欄中仍然能顯示中文。
我先根據網上一些解答配置了tomcat的配置文件,未果。後來想想也許不是什麼復雜的問題,應該就是編碼問題。我的myeclipse和項目的編碼都設置為的“UTF-8”。於是我試著把項目和myeclipse編碼都設為“iso8859-1”,還是不行。
這樣不行,我便采取了更直接的方式,在action中把獲取的變量值轉換一下試試(假設變量為string):
復制代碼 代碼如下:
String newstring = new String(string.getBytes("iso8859-1"));
但是這樣還是沒有用~~~~~~試了很久發現我的想法是對的但是合適的語句應該如下:
復制代碼 代碼如下:
String newstring = new String(string.getBytes("iso8859-1"),"utf-8");
ps:我先試著轉成GBK,然後發現字可以顯示了,但是沒人認識的字。。。果然還是“iso8859-1”對中文的支持好啊