我在 apache tomcat 6 中有一个带有 spring、jsp 和 jquery 的 Web 应用程序,一个 jsp 页面有一个表单,该表单通过 jquery 进行的 ajax 调用将数据发送到我后端的 Spring MultiActionController。
问题在于表单输入中的 UTF-8 字符串。
我已经做了以下事情:
在我的 HTML 上:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ page contentType="text/html; charset=utf-8" %>
<%@ page language="java" pageEncoding="utf-8"%>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<head>
.
.
在 jquery ajax 调用上:
$.ajaxSetup({ scriptCharset: "utf-8" ,contentType: "application/x-www-form-urlencoded; charset=UTF-8" });
$.ajax(
{
type: "GET",
url: "./saveData.action",
contentType: "charset=utf-8",
data: { name: $('#name').val(),...
在 tomcat server.xml 上:
<Connector connectionTimeout="20000" port="8080" URIEncoding="UTF-8" protocol="HTTP/1.1" redirectPort="8443"/>
在多动作控制器上
public ModelAndView saveData(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException
{
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
因此,如果在 name 参数中我输入如下内容:
María
在后端我得到
MarÃa.
我已经尝试了我读到的所有内容,但我不知道错误是什么,感谢您的帮助:)