導航:首頁 > 凈水問答 > utf8過濾器

utf8過濾器

發布時間:2022-03-28 20:55:23

Ⅰ javaee怎麼設置utf-8

第一原則:所有編碼的地方,統一設為UTF-8,這樣繁體,簡體,日文,韓文。。。通吃了)

一、下載中文文件名文件問題

a)Tomcat:修改Tomcat安裝目錄下conf/server.xml文件,加上URIEncoding="UTF-8"/ <Connector port="8080" .... URIEncoding="UTF-8"/> b)JBOSS :安裝目錄下 server/default/deploy/jbossweb-tomcat55.sar/server.xml <Connector port="8080" .... URIEncoding="UTF-8"/>

二、表單get/post傳遞中文亂碼
我們用一個過濾器,將所有編碼轉換為UTF-8
找到Tomcat安裝目錄下\webapps\jsp-examples\WEB-INF\classes\filters下RequestDumperFilter.java,SetCharacterEncodingFilter.java兩個文件。加入到你的項目,修改包路徑.
在web.xml文件中部署這個過濾器

<filter> <filter-name>Set Character Encoding</filter-name> <filter-class>SetCharacterEncodingFilter.java 的類路徑</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

三、jsp頁面模版
所有jsp頁面使用如下模版

<%@ page language="java" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv=content-type content="text/html; charset=UTF-8"> <title> </title> </head> <body> </body> </html>

四、資料庫以Unicode編碼存儲數據
MySQL資料庫設置
a)windows系統: windows下安裝mysql時,編碼選擇utf-8,查看mysql安裝目錄下my,ini文件,在[mysqld]段下面加入default-character-set=utf8
b)linux系統:/etc/mysql/下my.cnf文件,在[mysqld]段下面加入default-character-set=utf8

五、JDBC連接參數
注意:xml文件中,"&"是不能直接使用的, & 代替 &
Mysql資料庫jdbc 連接參數
jdbc:mysql://localhost/kms useUnicode=true&characterEncoding=utf-8
sql server資料庫jdbc連接參數(強烈建議使用JTDS驅動,比微軟官方驅動更好)
jdbc:jtds:sqlserver://localhost:1433/kms;TDS=8.0;charset=utf-8;SendStringParameterAsUnicode=true

Ⅱ 關於java過濾器解決中文亂碼的

因為你襲遺漏了重要的一步。正確的方法如下:

if(encoding!=null){
//設置request字元編碼
request.setCharacterEncoding(encoding);
//設置response字元編碼
response.setContentType("text/html;charset="+encoding);
response.setCharacterEncoding(encoding);
}
//傳遞給下一個過濾器
chain.doFilter(request,response);

Ⅲ 如何使用spring的字元編碼過濾器

有過濾器還亂,我猜猜,
1請求方式用post唄
2頁面編碼utf-8

Ⅳ utf-8中文顯示亂碼。

不太明白!你說清楚點`
你在自己本地建站就沒問題,你在本地用的是asp么?
你用ASP編的網頁不可以。那你是在遠程伺服器寫的嗎?。

做網頁盡量使用統一的編碼`不要幾個一個網頁使用UTF8
一個使用GB2312.這樣也會造成亂碼。

Ⅳ Struts中用了過濾器還是有亂碼問題

1.首先,設置資料庫支持中文gb2312/gbk。
具體方法:
打開mySQL文件夾,修改my.ini配置文件。
[client]
port=3306

default-character-set=gb2312
以及
[mysqld]下的
default-character-set=gb2312
修改,保存,重啟。若設為System服務,可以在控制面板-管理工具-服務中找到mySQL服務,重啟。
2.保證Web項目所在容器支持中文,個人認為是將Tomcat改為支持gb2312.
打開文件夾,找到server.xml修改
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
reloadable="true" redirectPort="8443" reloadable="true" URIEncoding="gb2312" />
rereloadable="true"設置熱啟動,URIEncoding="gb2312"設置字元
3.前台頁面
<%@ page language="java" pageEncoding="gb2312"%>
4.添加過濾器
本人將前三種都修改,重新啟動,資料庫的插入依然顯示???,之後使用Filter類成功。
據稱過濾類比較穩定,推薦使用。
具體過程,網上找的方法
package com.strutsLogin.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 SetCharacterEncodingFilter implements Filter {
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;
public void destroy() {
this.encoding = null;
this.filterConfig = null;
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
if (ignore || (request.getCharacterEncoding() == null)) {
String encoding = selectEncoding(request);
if (encoding != null)
request.setCharacterEncoding(encoding);
}
// Pass control on to the next filter
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if (value == null)
this.ignore = true;
else if (value.equalsIgnoreCase("true"))
this.ignore = true;
else if (value.equalsIgnoreCase("yes"))
this.ignore = true;
else
this.ignore = false;
}
protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}
}//EOC
該代碼來自於www.javawebstudio.com,特此感謝!
然後我們在web.xml中加一些配置,就可以了,配置如下:
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>javawebstudio.struts_db.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<servlet-name>action</servlet-name>
</filter-mapping>
放在web.xml的合適位置。一般在最後,<jsp-config>標簽之前(如果有的話)放在<servlet>之前,否則報錯
經過以上步驟,JSP和mysql的中文顯示及插入就都正常了。在STRUTS中也正常。

Ⅵ JSP Filter過濾器設置編碼問題。。。

importjava.io.IOException;

importjavax.servlet.Filter;
importjavax.servlet.FilterChain;
importjavax.servlet.FilterConfig;
importjavax.servlet.ServletException;
importjavax.servlet.ServletRequest;
importjavax.servlet.ServletResponse;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;

importorg.omg.CORBA.Request;

{

@Override
publicvoiddestroy(){
//TODOAuto-generatedmethodstub

}

@Override
publicvoiddoFilter(ServletRequestreq,ServletResponseres,
FilterChainchain)throwsIOException,ServletException{
//TODOAuto-generatedmethodstub
System.out.println("字元編碼過濾器");

HttpServletRequestrequest=(HttpServletRequest)req;
HttpServletResponseresponse=(HttpServletResponse)res;

request.setCharacterEncoding("UTF-8");
chain.doFilter(request,response);
}

@Override
publicvoidinit(FilterConfigconfig)throwsServletException{
//TODOAuto-generatedmethodstub
}

}

以上就是Filter過濾器的代碼, 都設置成UTF-8 支持中文, 寫好了以上代碼之後,要在web.xml文件中進行配置。

Ⅶ 對付jsp亂碼的亂碼過濾器要怎麼添加啊

正常頁面間傳輸 把編碼統一 utf-8 或 gbk 其實不會出現亂碼問題。
如果在資料庫提取數據傳給頁面,可能會出現亂碼問題。這時可在struts中設置編碼。
或加一個過濾器。過濾器具體操作如下:
1:在你寫JAVA類的地方新建個 類。filter 內容:
package com.yourcompany.filter;

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 filter implements Filter{

public void destroy() {
}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
}

public void init(FilterConfig arg0) throws ServletException {
}

}
2:在web.xml添加 映射文件(註:<filter-class>寫你過濾器類的路徑</filter-class>)
<filter>
<filter-name>fileter</filter-name>
<filter-class>com.yourcompany.filter.filter</filter-class>
</filter>
<filter-mapping>
<filter-name>fileter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

3.如還有不明白的 HI我

Ⅷ eclipse web項目的編碼過濾器,統一設置成UTF-8

過濾器中的內容:
private static final long serialVersionUID =85757L;

private String encoding;

public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {

arg0.setCharacterEncoding(encoding);

arg1.setCharacterEncoding(encoding);

arg2.doFilter(arg0, arg1);

}

public void init(FilterConfig arg0) throws ServletException {

encoding=arg0.getInitParameter("encoding");

}

web.xml文件中 添加過濾器
<filter>
<filter-name>類名</filter-name>
<filter-class>類名全路徑(包括包名)</filter-class>
<init-param><!--參數 與過濾器中的encoding對應 encoding的實際值是utf-8-->
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>

Ⅸ Filter中文過濾器有問題,諸位大俠幫我看看啊!

補充2:有兩種方式可以把utf8設置到欄位級別。
1.工具方式,請使用mysql官方工具mysql query browser,然後在表的edit table中的column details,直接對欄位進行設置。
2.命令行方式,ALTER TABLE tablename MODIFY COLUMN columnname varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL;對於每個可能會出現亂碼的欄位都要設置。

------------
補充:
他對已有的數據無效,只對設置utf8後的數據有效。另外,請樓主注意:utf8要設置到欄位級別,而不僅僅是表級別。

------------------------------------
不需要這樣處理。對於jsp+mysql的多語言問題,可以用以下解決方案,可以對任意語言都適用。
1.在資料庫鏈接字元串上要形如:jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF-8(注意要加characterEncoding=UTF-8)
2.在資料庫表和相應的欄位要的charset要選擇utf8(欄位也要加)
3.在servlet的java中去參數時要加上:httpServletRequest.setCharacterEncoding("UTF-8");
4.jsp頁面要加上字元集:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
這樣就可以處理所有語言的亂碼問題。

Ⅹ 如何配置Filter過濾器處理JSP中文亂碼

注意問題:在學慣用selvert的過濾器filter處理中文亂碼時,在filter配置初始化時用了utf-8處理中文亂碼,而在提交的jsp頁面中卻用了gbk。雖然兩種都可以出來中文亂碼,但是卻造成了處理亂碼的格式不一致。所以編譯出錯。
解決方法:所有地方都用utf-8或gbk

//過濾器類
CharactorFilter.jsp
package cn.com.Filter;
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 CharactorFilter implements Filter { //繼承Filter類
//字元編碼
String encoding=null;
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if(encoding!=null){
//設置request字元編碼
request.setCharacterEncoding(encoding);
//設置response字元編碼
response.setContentType("text/html;charset="+encoding);
}
//傳遞給下一個過濾器
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
//獲取初始化參數
encoding=filterConfig.getInitParameter("encoding");
}
public void destroy() {
// TODO Auto-generated method stub
encoding=null;
}
}

web.xml
<filter> <!--注意這里是filter,不要配置成servlet-->
<filter-name>CharactorFilter</filter-name> <!--過濾器名稱-->
<filter-class>cn.com.Filter.CharactorFilter</filter-class> <!--過濾器的完整類名-->
<init-param> <!--初始化參數-->
<param-name>encoding</param-name> <!--參數名稱-->
<param-value>utf-8</param-value> <!--參數值-->
</init-param>
</filter>
<filter-mapping> <!--過濾器映射-->
<filter-name>CharactorFilter</filter-name><!--過濾器名稱-->
<url-pattern>/*</url-pattern><!--URL映射,給所有頁面處理亂碼-->
</filter-mapping>

閱讀全文

與utf8過濾器相關的資料

熱點內容
液相用溶劑過濾器 瀏覽:674
納濾水導電率 瀏覽:128
反滲透每小時2噸 瀏覽:162
做一個純凈水工廠需要多少錢 瀏覽:381
最終幻想4回憶技能有什麼用 瀏覽:487
污水提升器采通 瀏覽:397
反滲透和不發滲透凈水器有什麼區別 瀏覽:757
提升泵的揚程 瀏覽:294
澤德提升泵合肥經銷商 瀏覽:929
飲水機後蓋漏水了怎麼辦 瀏覽:953
小型電動提升器 瀏覽:246
半透膜和細胞膜區別 瀏覽:187
廢水拖把池 瀏覽:859
十四五期間城鎮污水處理如何提質增效 瀏覽:915
怎麼測試空氣凈化器的好壞 瀏覽:519
提升泵是幹嘛的 瀏覽:744
布油做蒸餾起沫咋辦 瀏覽:252
廣州工業油煙凈化器一般多少錢 瀏覽:204
喜哆哆空氣凈化器效果怎麼樣 瀏覽:424
油煙凈化器油盒在什麼位置 瀏覽:582