1
제출 된 데이터를 처리하기 위해 사용자와 서블릿의 입력을받는 JSP가 있습니다. 서블릿을 호출하고 매개 변수를 전달하는 Ajax 요청을 사용하고 있습니다.Google App Engine은 영국 파운드와 같은 특수 문자를 지원하지 않습니다.
여기 내 JSP 코드입니다 :
<%@ page language="java" import="java.util.*,com.*,bo.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function check(){
var i = document.getElementById('input').value;
var escapedi = escape(i);
escapedi = escapedi.replace("%u2019","%27");
var xhr = new XMLHttpRequest();
xhr.open("GET","LinkHandler?text="+ escapedi,true);
xhr.send();
}
</script>
</head>
<body>
<input type="text" id="input"/><input type="button" onclick="check()" value="Submit"/>
</body>
</html>
그리고 여기 내 서블릿 코드이다 : 나는 Google 웹 응용 프로그램에서 실행할 때
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String text = URLDecoder.decode(req.getParameter("text"),"UTF-8");
System.out.println(text);
}
코드는 정상적인 웹 프로젝트에 잘 실행되지만 프로젝트에서 영국 파운드와 같은 일부 특수 문자는 "?"로 표시됩니다.
어떻게 해결할 수 있습니까? 제발 도와주세요!
위의 문은 en_IN가 두 환경, 그것은 코드에 어떻게 영향을 미치는지하지만 확실하지에 제공합니다. – shashank
알았습니다! 위 코드에서와 같이 "i"를 이스케이프하지 마십시오. 대신 직접 변수를 전달하고 Servlet 측에서 UTF-8로 디코딩하십시오. – shashank