pdf转word转换 过滤ASCII码中的不可见字符, ASCII三部分, 各控

电脑杂谈  发布时间:2018-02-03 03:04:13  来源:网络整理

word转换为pdf_pdf转word转换_pdf转换器,

PostgreSQL , java , Greenplum , 0x00 , 空字符 , NUL , 数据清洗 , 规则 , 过滤 , 非法字符

%E5%88%B0pg%E8%BF%81%E7%A7%BB%E9%94%99%E8%AF%AF-%E6%97%A0%E6%95%88%E7%9A%84%E7%BC%96%E7%A0%81%E5%BA%8F%E5%88%97-utf8-0x00/

今天产品部同事报告了一个BUG,经过调试发现,由于用户输入的字符串中,包含字符0x1E, 也就是”记录分隔符”(Record Separator, Notepad++ 显示为[RS]),导致JavaScript XML解析遭遇错误。于是就想在字符串中过滤掉这些没多大用途的字符,同时又要保留部分常用的字符,例如换行,回车和水平制表符。于是写了下面一个 PHP 函数:

/**    
* 清理字符串中的部分不可见控制字符    
*    
* @param string $string 待处理字符串    
* @return string 处理后的字符串    
* @author fising(at)qq.com    
*/    
public static function clearInvisibleCharacter($string = '')    
{    
/* 排除 tab, \n, \r 三个字符 */    
$do_not_searches = array(chr(9), chr(10), chr(13));    
/* 需清理的字符列表 */    
$searches = array();    
for ($i = 0; $i <= 31; $i++)    
{    
if (!in_array(chr($i), $do_not_searches))    
{    
$searches[] = chr($i);    
}    
}    
$searches[] = chr(127);    
return str_replace($searches, '', $string);    
}    
过滤ASCII码中的不可见字符

上面所说的“不可见字符”,其实属于ascii码中的控制字符,它们是0到31、以及127,分别代表什么可查询ascii码表。

在展示页面前,将文字中的控制字符改为空格(ascii 32)

public static String filter(String content){    
if (content != null && content.length() > 0) {    
char[] contentCharArr = content.toCharArray();    
for (int i = 0; i < contentCharArr.length; i++) {    
if (contentCharArr[i] < 0x20 || contentCharArr[i] == 0x7F) {    
contentCharArr[i] = 0x20;    
}    
}    
return new String(contentCharArr);    
}    
return "";    
}    

其具体每个控制字符的含义,详解介绍如下:

ASCII中的Function/Control Code功能字符的详细含义

0 – NUL – NULl 字符/空字符


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-64691-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...