我在 WEB 上阅读了很多类似的问题,但没有一个解决方案对我有帮助。当查询可以是希伯来语、英语或任何其他语言时,我使用搜索实现网页。当用户单击“搜索”时,我使用 JavaScript 获取字段中的值并使用 Ajax 显示结果。当用户单击“搜索”时,JavaScript 函数会向我的 JSP 文件发送一个新请求,当查询作为参数发送时。
你知道如何解决它吗?
JavaScript 中的相关行:
...
request = new XMLHttpRequest();
var url = "SearchResults.jsp?userID=" + userID + "&query=" + encodeURIComponent(query);
alert("The query = " + query);
alert("The url = " + url);
request.open("GET", url, true);
...
第一个警报正确显示希伯来语,第二个警报显示 url 当查询参数编码为 %%.. 当我将它粘贴到 Google 搜索中时,它正确地用希伯来语写了这个词
服务器中的相关行:
...
String userID = request.getParameter("userID");
FbLogger.fbLogger.info(request.getParameter("query"));
String query = URLDecoder.decode(request.getParameter("query"), "UTF-8");
FbLogger.fbLogger.info("Entered as Manager with Params: userID = " + userID + " , query = " + query);
...
我将查询视为 ×?שר×?×? 在我上面 2 条消息的日志中,用户 ID 已正确传递。
在我添加的每一页上:
<%@page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=charset=UTF-8">
<script language="javascript" type="text/javascript" charset="utf-8" src="javascript/friendsSearch.js"></script>
我还更改了 Tomcat 服务器 (server.xml) 中的配置:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/>