導航:首頁 > 凈水問答 > java過濾非utf8字元

java過濾非utf8字元

發布時間:2022-07-28 16:05:31

1. Java字元編碼轉換

默認是utf8的,這個要看你的操作系統是什麼編碼的了,我在繁體版Windows下是BIG5的,在簡體版下是utf8的,通常在頁面返回的值都跟jsp頁面的編碼有關,簡體字一般用gb2312,而你用gbk是包括gb2312和big5的;這里的問題的解析為,獲得str不是一定是gbk,只是gbk的str能夠獲得,過濾了非gbk的字元。讀取文件的時候,你可以在文件中加入非gbk字元看看(即是亂碼)。應該不會讀取那些東西的。

2. java : json 過濾不合法字元的工具包工具類工具

json中沒有自帶的過濾不合法字元的工具類,需要用戶自己編寫。
將源數據中的'、回"、\\、空格、換行答等都替換成轉義符,這樣你拼接的json數據就是正常的,顯示出來格式和資料庫中的一樣。
function valueReplace(v) {
if (v.indexOf("\"") != -1) {
v = v.toString().replace(new RegExp('(["\"])', 'g'), "\\\"");
}
else if (v.indexOf("\\") != -1)
v = v.toString().replace(new RegExp("([\\\\])", 'g'), "\\\\");
return v;
}

3. java正則表達式過濾特殊字元

Stringregexp="[^'"%]*";
Stringstring="abc%";
System.out.println(string.matches(regexp));

4. jsp\java 如何編寫過濾器過濾特殊字元

package com.jing.common;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class IllegalCharacterFilter implements Filter {
private String[] characterParams = null;
private boolean OK=true;

public void init(FilterConfig config) throws ServletException {

// if(config.getInitParameter("characterParams").length()<1)
// OK=false;
// else
// this.characterParams = config.getInitParameter("characterParams").split(",");
System.out.println("初始化");
}

@SuppressWarnings("unchecked")
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain arg2) throws IOException, ServletException {
HttpServletRequest servletrequest = (HttpServletRequest) request;
HttpServletResponse servletresponse = (HttpServletResponse) response;
String param = "";
String paramValue = "";

//設置請求編碼格式
servletresponse.setContentType("text/html");
servletresponse.setCharacterEncoding("UTF-8");
servletrequest.setCharacterEncoding("UTF-8");
java.util.Enumeration params = request.getParameterNames();
//循環讀取參數
while (params.hasMoreElements()){
param = (String) params.nextElement(); //獲取請求中的參數
String[] values = servletrequest.getParameterValues(param);//獲得每個參數對應的值

for (int i = 0; i < values.length; i++) {

paramValue = values[i];

//轉換目標字元變成對象字元,可以多個。後期擴展特殊字元庫用於管理
paramValue = paramValue.replaceAll("'","");
paramValue = paramValue.replaceAll("@","");
paramValue = paramValue.replaceAll("胡錦濤","***");

//這里還可以增加,如領導人 自動轉義成****,可以從資料庫中讀取非法關鍵字。
values[i] = paramValue;

}

//把轉義後的參數重新放回request中
request.setAttribute(param, paramValue);
}
//繼續向下 執行請求,如果有其他過濾器則執行過濾器
arg2.doFilter(request, response);
}

public void destroy() {
// TODO Auto-generated method stub
}
}

5. Java亂碼問題 為什麼寫了過濾器都沒有用必須得一個欄位一個欄位的設置 資料庫裡面的是iso-8859-1類型的

你資料庫欄位的類型必須是中文類型,比如是UTF-8的

就像,你把一個中文字元 存入iso-8859-1的欄位,欄位根本就不支持中文,能不亂碼嗎,所以先要把資料庫的類型改成中文

過濾器的作用是把頁面和後台java程序這個部分的字元轉換,不管資料庫的

如果是後台java已經轉換完了,但是插入資料庫是出現問題,如果是mysql資料庫
jdbc:mysql://211.151.32.151:3306/zipcard?characterEncoding=UTF-8
加上?characterEncoding=UTF-8就可以了

6. jsp\java如何編寫過濾器過濾特殊字元

正則表達式來校驗:過濾器就網路一大堆,怎麼寫正則表達式,也可以網路,不知你說的特殊字元是什麼字元,所以只能給方法

7. java過濾非法字元的filter

filter代碼在pujia12345提供的代碼上改的;
jsp頁面的編碼你設成你自己的,我用的是-8。
input.jsp輸入後,正常跳轉到handle.jsp,而禁詞已經被過濾。
filter:
package test;

import java.io.*;
import javax.servlet.*;
import java.util.*;

public class MyFilter implements Filter
{
private List<String> unString;

public void init(FilterConfig filterConfig) throws ServletException
{
unString = new ArrayList<String>();
unString.add("日");
}

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException
{
String content = request.getParameter("content");//需要過濾的參數
if(content!=null){
for (int i = 0; i < unString.size(); i++)
{
String strIllegal = unString.get(i);
if (content.indexOf(strIllegal) >= 0)
{
content = content.replaceAll(strIllegal, "");//非法字元替換成空
}
request.setAttribute("content", content);//為request設置屬性保存修改後的值
}
}
chain.doFilter(request, response);
}
public void destroy()
{
//System.out.println("過濾器銷毀");
}
}

//---------------------------//
web.xml:
<filter>
<filter-name>myfilter</filter-name>
<filter-class>test.MyFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>myfilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

//---------------------------//
輸入頁面input.jsp:

<%@page contentType="text/html;charset=utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>input.jsp</title>
</head>

<body>
<form action="handle.jsp" method="post">
<input type="text" name="content" />
<input type="submit" value=" 提交 " />
</form>
</body>
</html>

//---------------------------//
input提交的頁面handle.jsp:
<%@page contentType="text/html;charset=utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> handle.jsp </title>
</head>

<body>
<%
String content = (String)request.getAttribute("content");
out.println(content);
%>
</body>
</html>

8. java過濾特殊字元的問題

"+"在URL中會被當作空格處理。
必須使用URLEncoder將其變成URL編碼。
或者使用 javascript 的 encodeURIComponent(url) 函數對URL進行編碼轉換。

9. JAVA特殊字元過濾方法

public static String StringFilter(String str) throws PatternSyntaxException {
// 只允許字母和數字
// String regEx = "[^a-zA-Z0-9]";
// 清除掉所有特殊字元
String regEx="[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】『;:」「』。,、?]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
return m.replaceAll("").trim();
}

閱讀全文

與java過濾非utf8字元相關的資料

熱點內容
蘇伊士污水設計多少錢 瀏覽:321
2020年雨污水改造 瀏覽:8
如何區分一瓶蒸餾水和一瓶稀氯化鉀溶液 瀏覽:154
純水產量怎麼計算 瀏覽:672
污水處理廠綠化管理規范 瀏覽:81
12代軒逸空調濾芯怎麼更換 瀏覽:757
污水有哪些危險 瀏覽:165
樹脂工藝品古代 瀏覽:953
重慶市造紙廠污水絮凝劑多少錢 瀏覽:473
濟南醫院污水處理多少錢 瀏覽:111
澤德污水提升器工作原理圖 瀏覽:243
磁石濾芯加什麼最好 瀏覽:264
冷水機組的水垢系數 瀏覽:823
最大埋深深度不大於多少米社提升泵 瀏覽:28
ro純凈水和edi超純水濕巾 瀏覽:441
茶杯如何清除水垢 瀏覽:641
秦皇島安吉爾凈水器加盟前景如何 瀏覽:630
薇型自動水處理說明書 瀏覽:982
凈水器膜規格75加侖什麼意思 瀏覽:206
沈陽廢水廢氣檢測 瀏覽:733