2010-02-17 37 views
0

我有一個jsp頁面(讓我們說page1.jsp),它有一個html表單,action =「page2.jsp」。 在page1.jsp和page2.jsp中,頭部外部有<%@page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>,頭部有<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">Jsp表單編碼

如果我寫的形式我的網址看到希臘字母(get方法)類似的東西 http://localhost:8080//addProblem.jsp?lastNameForm=%CF%84%CF%85%CE%B8%CF%84%CF%85%CE%B8%CF%84%CF%85&firstNameForm=&eMa ....

,並從page2.Jsp與使用<% out.println(request.getParameter("lastNameForm")); %>

我得到這個αÏδαÏδ 什麼我可不可以做?

回答

3

的頂部。因此,要進行URL解碼使用UTF-8字符編碼GET請求參數。對於URL解碼GET請求參數,您需要在服務器配置中設置字符編碼。如何做到這一點取決於有問題的服務器,最好是使用關鍵字"uri encoding"來引用其文檔。在例如Tomcat的需要設置在server.xml HTTP請求<Connector>元素的URIEncoding屬性,也看到this文件:

<Connector (...) URIEncoding="UTF-8" /> 

HttpServletRequest#setCharacterEncoding()作爲Bozho提到只適用於其中的參數都包含在POST請求請求正文而不是URL。

有關所有解決方案的更多背景信息和詳細概述,您可能會發現this article有用。

+0

我正要寫關於連接器,但有點忙(閱讀:懶惰:) :)(+1) – Bozho

+0

真正的問題是,想發送一個gDataRequest,如下所示http:// code.google.com/intl/el-GR/apis/fusiontables/docs/sample_code.html如果在runUpdate(updateQuery)函數中updateQuery包含希臘字符,儘管按照您的指示更改了服務器配置,但我仍然遇到同樣的問題。請將請看一下謝謝 –

+0

鏈接後面的代碼看起來與您在topicstart中顯示的完全不同。我也無法將這個與另一個關聯起來。現在我很困惑,因爲你「仍然有同樣的問題」是不可能的。也許你打算說,你仍然可以得到這些角色,但現在在不同的地方/情況?那麼你應該問一個新問題。 – BalusC

3

嘗試

request.setCharacterEncoding("utf-8"); 

在你的第二JSP

+0

這不適用於GET查詢參數。 – BalusC

+0

@Argiropoulos Stavros看到BalusC的回答 – Bozho