设置字符白名单 - 中文在 Uniccode 的范围,以及 中文转成int后的范围

今天在解决系统安全漏洞及代码安全漏洞。需要设置一个允许输入的字符白名单。

因为用户可以输入 中文、大写英文、小写英文、数字、以及常规字符。

有些资料内查询的中文在 unicode编码 范围为:\u4E00-\u9FA5  这个范围为基本汉字。(文末附更多中文字符集)

\u4E00  这个怎么看,以前没有具体看过,今天分析了一下豁然开朗,原来这么简单。 

unicode百度百科

\u4E00  分为两部分  \u  和 4E00  

\u 为 unicode编码的意思

4E00  是十六进制数

可以将十六进制通过工具转换成10进制        在线进制转换工具

4E00转换为十进制为:19968

9FA5转换为十进制为:40869

设置字符白名单 - 中文在 Uniccode 的范围,以及 中文转成int后的范围_第1张图片设置字符白名单 - 中文在 Uniccode 的范围,以及 中文转成int后的范围_第2张图片

换句话说基本中文转成十进制范围19968-40869

可以自己写个main方法测试一下、

一:将unicode编码 \u4E00 通过工具转成中文得到的是“一”。            Unicode在线转换工具

二:写个main方法将十进制19968转换成char输出。输出的也是 “一”

三:通过以上方法即可将中文在unicode编码的范围,转成在数值中的范围,这样就得到了中文转成数值后的范围了。

	public static void main(String[] args) {
		System.out.println("数值的19968对应的char="+(char)19968);
	}

设置字符白名单 - 中文在 Uniccode 的范围,以及 中文转成int后的范围_第3张图片

所以根据以上内容自己写了一个白名单过滤字符串工具类。

package cdb.hq.litsoft.bjyl.connector.util;

public class StringWhiteList {
	public static String cleanString(String aStr){
		if(aStr==null) return null;
		String cleanString="";
		for(int i=0;i 
    
     
     字符集 
     字数 
     Unicode 编码 
     
     
     基本汉字 
     20902字 
     4E00-9FA5 
     
     
     基本汉字补充 
     74字 
     9FA6-9FEF 
     
     
     扩展A 
     6582字 
     3400-4DB5 
     
     
     扩展B 
     42711字 
     20000-2A6D6 
     
     
     扩展C 
     4149字 
     2A700-2B734 
     
     
     扩展D 
     222字 
     2B740-2B81D 
     
     
     扩展E 
     5762字 
     2B820-2CEA1 
     
     
     扩展F 
     7473字 
     2CEB0-2EBE0 
     
     
     扩展G 
     4939字 
     30000-3134A 
     
     
     康熙部首 
     214字 
     2F00-2FD5 
     
     
     部首扩展 
     115字 
     2E80-2EF3 
     
     
     兼容汉字 
     477字 
     F900-FAD9 
     
     
     兼容扩展 
     542字 
     2F800-2FA1D 
     
     
     PUA(GBK)部件 
     81字 
     E815-E86F 
     
     
     部件扩展 
     452字 
     E400-E5E8 
     
     
     PUA增补 
     207字 
     E600-E6CF 
     
     
     汉字笔画 
     36字 
     31C0-31E3 
     
     
     汉字结构 
     12字 
     2FF0-2FFB 
     
     
     汉语注音 
     43字 
     3105-312F 
     
     
     注音扩展 
     22字 
     31A0-31BA 
     
     
     〇 
     1字 
     3007 
     
    
   
  

 

你可能感兴趣的:(代码安全问题,代码安全修复,中文转unicode,中文转数值,白名单,字符串过滤)