標籤:java web servlet jav
jsp傳值給jsp中文亂碼 傳值給資料庫亂碼的解決方案
所有的用到編碼的全部統一utf-8
1.裝mysql的時候有選擇編碼的介面的那個地方選utf-8編碼
2 建資料庫的時候選擇 字元集 定序全部utf8 -- UTF-8 Unicode utf8_general_ci
3 建立表的時候 字元集 定序全部和上面一樣
到這裡資料庫那邊的好了
接下來是jsp端
4 所有jsp頁面的頭部添加
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page contentType="text/html; charset=UTF-8" %>
5 串連資料庫的javaservlet裡面
String cc="com.mysql.jdbc.Driver";
String server="jdbc:mysql://127.0.0.1:3306/test1?useUnicode=true&characterEncoding=UTF-8";
String user="root";
String pwd="";
6 工程的web.xml裡面頭部
<?xml version="1.0" encoding="UTF-8"?>
7.用tomcat的朋友在配置裡server.xml裡面
頭部<?xml version=‘1.0‘ encoding=‘utf-8‘?>
接著有人說配置tomcat的設定檔server.xml裡這句:
<connector
port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
加上這句:URIEncoding="UTF-8"
8.忘記一條在建工程的時候也要utf-8,右擊工程屬性裡面resource裡面設定
到這裡全部修改完畢我相信你就不會出現亂碼了哈哈。
強調下如果是jsp傳值jsp你還可以用強轉功能的
String name=request.getParameter("name");修改為
String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8");
這樣可以顯示中文了就。當然很麻煩如果太多。