您的位置:首页 > Web前端 > JavaScript

JSP 表单输入,UTF编码,get方式提交数据出现中文乱码解决方法

2012-02-04 19:52 1116 查看
开门见山直接点题

问题描述:

JSP页面,表单输入中文,查询MySQL数据库内"歌曲"信息,检索结果为空。字符编码为UTF-8格式,服务器为tomcat 7,0

同时在控制台信息以及值栈中发现title参数的值为乱码。

where xxx.title like '%第二人生%'



解决方法:

// PS: 步骤一 以及 步骤二 为重点检查对象


一、检查jsp“三个编码格式”

(1) jsp文件的存储格式 —— 可以用notepad++等进行格式转换

(2)
jsp页面的解码格式 —— 加上以下这句话就OK了。

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>

(3)
浏览器界面的解码格式 —— 一般都是右键——编码——Unicode(utf-8),或者:工具——编码——Unicode(utf-8)



二、tomcat服务器,get方式提交表单时

在项目工程中的Servers文件夹中的,server.xml文件中找到

<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Documentation at :
Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
Java AJP  Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html  Define a non-SSL HTTP/1.1 Connector on port 8080
-->
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" />
这段代码;修改
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" />


<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"  />
即:添加 useBodyEncodingForURI="true" 这个属性




三、检查IDE的各种编码(Eclipse为例)

(1) Workspace//

(2)Project
//工程属性

(3)File
// 即JSP文件

四、 检查数据库各种编码

(1) 数据库编码

(2) 数据表编码

(3) localhost的各种编码 (这个的话要么手动改my.ini要么就偷懒点

一下)

一般是没有意外了……不出意外的话按照get方式提交的表单就能正常显示中文了

附网上一些参考资料:

http://www.360doc.com/content/11/0308/16/2942953_99262299.shtmljsp中文乱码问题
http://www.regexlab.com/zh/encoding.htm字符,字节和编码




Dalston

2012-2-4 19:55:10




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: