有如下代码:在点击URL方式的时候name参数的中文在后台可以正确显示,但是在浏览器直接输入中文的时候为什么后台就是乱码了[code="java"]<%@ page language="java" 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">
<a href="${pageContext.request.contextPath}/user/welcome?name=哈哈">URL方式</a>
<form action="${pageContext.request.contextPath}/user/login" method="post">
<span>用户名</span><input type="text" name="username" /><br/>
<span>密 码</span><input type="password" name="password" /><br/>
<input type="submit" value="登录" />
</form>
[/code]
Controller:[code="java"] @RequestMapping(value = "/welcome",method = RequestMethod.GET)
public String welcome(ModelMap model,HttpServletRequest request){
String name = request.getParameter("name");
System.out.println("*********"+name+"*************");
model.put("name", name);
System.out.println("*********welcome*************");
return "welcome";
}[/code]web.xml[code="java"]<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright : adobocode.com , 2010 -->
xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:javaee="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
id="WebApp_ID" version="2.4">
springmvc
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
[/code]
characterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
[color=red]
forceEncoding
true
[/color]
试试这个,不得请参见这篇博文,可能需要修改你的request
[url]http://www.blogjava.net/yuxh/archive/2009/11/22/303262.html[/url]
这应该跟中文域名地址有关,现在不是还没有支持中文域名嘛,你在百度搜索,输入一个中文词汇,再看地址栏上写的是转义后的编码,所以应该是这样的,在地址栏无法直接输入中文,只有将其以Unicode编码转义后才能使用。
我觉得在url直接输入文字时, 浏览器应该都默认为操作系统的编码, 因为实在没有额外的信息了. 百度默所有编码都为gbk, 而你的操作系统也是gbk, 所以你直接搜索没问题.
但你自己的服务器后台是utf-8的,所以就有问题
你可以去google试一下,直接输入中文也是不行的,