這行代碼,用於解碼編碼中國字:編碼/解碼奇怪的問題
URLDecoder.decode("%E4%BB%BB%E4%BD%95%E8%BD%A6%E8%BE%86%E5%BA%94",
"UTF-8").getBytes().length
當我在JSP頁面中運行(在JBoss),它打印5:
<%= URLDecoder.decode("%E4%BB%BB%E4%BD%95%E8%BD%A6%E8%BE%86%E5%BA%94",
"UTF-8").getBytes().length %>
在桌面應用程序打印15中運行它:
public static void main(String[] args) {
System.out.println(URLDecoder.decode(
"%E4%BB%BB%E4%BD%95%E8%BD%A6%E8%BE%86E5%BA%94", "UTF-8"
).getBytes().length);
}
爲什麼?我想讓jsp也得到15,怎麼樣?
你確定嗎?仔細檢查是否有其他問題。你的整個JSP頁面是什麼樣的?是不是從15被隱藏的1個? JSP中的Java代碼只是普通的Java代碼,與servlet中的Java代碼完全相同(實際上,JSP將轉換爲servlet)。 – Jesper 2009-10-06 20:59:32
JSP頁面不包含任何其他URLDecoder導入語句,我僅將它用於測試。 – Moro 2009-10-06 21:03:20
不,它是5我正確地看到它。 – Moro 2009-10-06 21:04:48