新聞中心
1.數(shù)據(jù)庫(kù)編碼不一致導(dǎo)致亂碼

10年積累的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有武強(qiáng)免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
解決方法:
首先查看數(shù)據(jù)庫(kù)編碼,輸入:
- show variables like "%char%";
確認(rèn)編碼一致,如果不一致,可輸入:
- SET character_set_client='utf8';
- SET character_set_connection='utf8';
- SET character_set_results='utf8';
也可設(shè)置成gbk編碼;
也可以在安裝Mysql目錄下修改my.ini文件
- default-character-set=utf-8
2.jsp頁面亂碼問題
在myeclipse中jsp的默認(rèn)編碼為ISO-8859-8;
只需在頁面頭部修改為
- <%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
在JSP頁面頭部加入下面這句話,告訴瀏覽器應(yīng)該調(diào)用UTF-8的字符集。
3.jsp連接數(shù)據(jù)庫(kù)存入中文亂碼
在數(shù)據(jù)庫(kù)連接時(shí)
- jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
如果使用框架連接則把頭文件都修改成UTF-8編碼即可
4.在使用struts2可使用過濾器:
先變寫一個(gè)過濾器
- package com.oumyye.util;
- import java.io.IOException;
- import javax.servlet.Filter;
- import javax.servlet.FilterChain;
- import javax.servlet.FilterConfig;
- import javax.servlet.ServletException;
- import javax.servlet.ServletRequest;
- import javax.servlet.ServletResponse;
- public class CharacterEncodingFilter implements Filter{
- protected String encoding = null;
- protected FilterConfig filterConfig = null;
- public void init(FilterConfig filterConfig) throws ServletException {
- this.filterConfig = filterConfig;
- this.encoding = filterConfig.getInitParameter("encoding"); } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if (encoding != null) { request.setCharacterEncoding(encoding); response.setContentType("text/html; charset="+encoding); } chain.doFilter(request, response); } public void destroy() { this.encoding = null; this.filterConfig = null;
- }
- }
在web.xml中配置
0001web CharacterEncodingFilter com.oumyye.util.CharacterEncodingFilter encoding UTF-8 CharacterEncodingFilter /* REQUEST FORWARD
在表單中只能使用post傳值,此方法對(duì)于get無效。
5 處理單個(gè)字符串的中文亂碼問題
- String newnewname=new String(name.getBytes("iso-8859-1"),"utf-8"))
#p#
附:JSP中的編碼設(shè)置
1. pageEncoding:<%@ page pageEncoding="UTF-8"%>
設(shè)置JSP編譯成Servlet時(shí)使用的編碼
2. contentType: <%@ page contentType="text/html; charset=UTF-8"%>
對(duì)服務(wù)器響應(yīng)進(jìn)行重新編碼,即jsp的輸出流在瀏覽器中顯示的編碼
3. html頁面charset:
網(wǎng)頁的編碼信息 ,說明頁面制作所使用的編碼
4. request.setCharacterEncoding() -- 可用在servlet和jsp頁面中
作用是設(shè)置對(duì)客戶端請(qǐng)求進(jìn)行重新編碼的編碼,即post方式提交的數(shù)據(jù)進(jìn)行編碼。
5. response.setCharacterEncoding() -- 可用在servlet和jsp頁面中
對(duì)服務(wù)器響應(yīng)進(jìn)行重新編碼,即jsp的輸出流在瀏覽器中顯示的編碼,與<%@ page contentType="text/html;charset=UTF-8"%>一樣
6. response.setContentType() -- 可用在servlet和jsp頁面中
對(duì)服務(wù)器響應(yīng)進(jìn)行重新編碼,即jsp的輸出流在瀏覽器中顯示的編碼,與<%@ page contentType="text/html;charset=UTF-8"%>一樣
7.response.setHeader("Content-Type","text/html;charset=UTF-8"); -- 可用在servlet和jsp頁面中
與一樣
本文名稱:開發(fā)過程遇到的中文亂碼問題如何解決
新聞來源:http://www.dlmjj.cn/article/cogccgo.html


咨詢
建站咨詢
