不可见字符过滤
A. Excel 如何清除不可见字符或符号
Excel清除不可见字符或符号的方法如下:
1、在单元格中输入“=CLAEAN()”;
B. 怎样在SQL Server中去除表中不可见字符
以下的实例为去除指定表中数据类型VARCHAR,CHAR,NVARCHAR的字段值中的不可见字符。 注释:此处只去掉前后的不可见字符,不包括中间的字符,而且没有区分中文。
在使用前需要指定对应要修改的表名,并且需要在对应数据库下执行;
SETNOCOUNTON
DECLARE@TblNameVARCHAR(100)
DECLARE@UpdateStringNVARCHAR(1000)
DECLARE@SelectStringNVARCHAR(1000)
DECLARE@COlNameVARCHAR(100)
DECLARE@COUNTINT
SET@TblName='YOURTABLENAME'--指定想要修改的表名
--定义游标取出指定表内的数据类型是VARCHAR,char,nVARCHAR的字段名称
DECLAREcur_ColNameCURSOR
FOR
SELECTcol.name
FROMsyscolumnsAScol
innerjoinsysobjectsASobjONcol.ID=obj.ID
INNERjoinsystypesAStypONcol.xtype=typ.xtype
WHEREobj.xtype='U'
ANDobj.name=@TblName
ANDtyp.nameIN('VARCHAR','CHAR','NVARCHAR','NCHAR')
FORREADONLY
--打开游标
OPENcur_ColName
FETCHNEXTFROMcur_ColNameINTO@ColName
IF@@FETCH_STATUS<>0
BEGIN
PRINT'没有对应表或字段,
'PRINT'请确认当前数据库内有'+@TblName+'表,
'PRINT'或该表内有VARCHAR、CHAR、NVARCHAR、NCHAR类型的字段!
'GOTOLABCLOSE
END--循环修改
WHILE@@FETCH_STATUS=0
BEGIN
--拼修改字符串
--去掉左边的不可见字符
SET@SelectString='SELECT@COU=COUNT(*)
FROM'+@TblName+'
WHEREASCII(LEFT('+@ColName+',1))<32
AND'+@ColName+'ISNOTNULL'
EXECsp_executesql@SelectString,N'@COUINTOUTPUT',
@COUNTOUTPUTWHILE@COUNT>0
BEGIN
SET@UpdateString=
'UPDATE'+@TblName+
'SET'+@ColName+'=RIGHT('+@ColName+',LEN('+@ColName+')-1)
WHEREASCII(LEFT('+@ColName+',1))<32
AND'+@ColName+'ISNOTNULL'
EXECsp_executesql@UpdateString
EXECsp_executesql@SelectString,N'@COUINTOUTPUT',@COUNTOUTPUT
END
--去掉右边的不可见字符SET@SelectString='SELECT@COU=COUNT(*)
FROM'+@TblName+'
WHEREASCII(RIGHT('+@ColName+',1))<32
AND'+@ColName+'ISNOTNULL'
EXECsp_executesql@SelectString,N'@COUINTOUTPUT',
@COUNTOUTPUTWHILE@COUNT>0
BEGIN
SET@UpdateString='UPDATE'+@TblName+'SET'
+@ColName+'=LEFT('+@ColName+',LEN('+@ColName+')-1)
WHEREASCII(RIGHT('+@ColName+',1))<32
AND'+@ColName+'ISNOTNULL'
EXECSP_EXECUTESQL@UpdateString
EXECsp_executesql@SelectString,N'@COUINTOUTPUT',
@COUNTOUTPUT
END
PRINT'column:'+@ColName+'---ok'
FETCHNEXTFROMcur_ColNameINTO@ColName
END
--关闭、释放游标LABCLOSE:CLOSEcur_ColName
DEALLOCATEcur_ColName
C. 如何处理含不可见字符的串
贴几个常用函数
1、获取字符的ASCII码 ASCII
ASCII码是对字符的标准编码。要获取字符的ASCII码就可以通过调用ASCII函数来实现。
语法结构:
ASCII(espression)
这里的expression是一个返回char或varchar数据类型的表达式,ASCII函数仅对表达式最左侧的字符返回ASCII码值。--这个是重点
返回值:int数据类型。
示例:
select ASCII('f') --输出 102
注意如果是多个字符的字符串,也只是返回第一个字符的ASCII码值。
2、获取ASCII码对应的字符 Char
语法结构:
char(integer_expression)
返回值类型:char型字符
示例:
select char(102) -- 输出f
3、获取字符的unicode编码 Unicode
unicode函数可以获得字符的unicode编码。
语法结构:
unicode('ncharacter_expression')
这里的ncharacter_expression是nchar或nvarchar类型的表达式。函数仅会返回第一个字符的unicode编码。
返回值:int类型数据
示例:
SELECT Unicode('飞') -- 输出 39134
4、获取unicode编码对应的字符nchar
nchar能够根据unicode标准的定义,返回具有指定的整数代码的unicode字符。
语法结构:
nchar(integer_expression)
返回值:unicode字符
示例:
SELECT nchar(39134) -- 输出 飞
5、获取字符串长度LEN
len函数用于获取字符串的长度(字符数),但不包括右边的空格。左边的空格和右边的空格计算在内。
语法结构:
len( string_expression )
参数说明:
string_expression:要计算长度的字符串。
返回值:expression数据类型为varchar(max)、nvarchar(max)或varbinary(max),则为bigint。否则为int。
示例:
select len('天下之大,无奇不有') -- 输出 9
6、REPLACE
用另一个字符串值替换出现的所有指定字符串值。
语法如下:
REPLACE ( string_expression1 , string_expression2 , string_expression3 )
参数
string_expression1:要搜索的字符串表达式。string_expression1 可以是字符或二进制数据类型。
string_expression2:要查找的子字符串。string_expression2 可以是字符或二进制数据类型。
string_expression3:替换字符串。string_expression3 可以是字符或二进制数据类型。
SELECT REPLACE('abcde','abc','xxx') --xxxde
D. 什么函数可以去除不可见字符
Excel 使用CLEAN清除不可见字符或符号。
CLEAN 函数说明
删除文本中不能打印的字符。对从其他应用程序中输入的文本使用 CLEAN 函数,将删除其中含有的当前操作系统无法打印的字符。例如,可以删除通常出现在数据文件头部或尾部、无法打印的低级计算机代码。
E. 如何去掉excel中不可见的特殊字符
使用函数CLEAN就可以,例如需要去掉A1的特殊字符,公式为:
=CLEAN(A1)
F. 如何查看字符串中的不可见字符
因为字符的数目小于编码空间。
如Unicode字符集有65536个空间,实际只有3万多个字符,也就是还有3万个编码位置没有字符,是空码。
而Default编码,即GB2312也是这个问题
所以有些字节组合并不存在对应的字符
而如果是ASCII编码,它只能表达128个字符,凡是大于128的字节都会被转换成63
ASCII(0~127)范围的话,0~31和127算是不可见字符
G. Excel 如何写语句去掉A列中的不可见字符
代码如下:
Sub去掉A列中不可见字符()
ar=Range("A1",Range("A"&Cells.Rows.Count).End(3))
Fori=1ToUBound(ar)
ar(i,1)=Application.Clean(ar(i,1))
Next
Range("A1").Resize(UBound(ar))=ar
EndSub
H. Excel 如何去掉任何未知不可见字符
使用函数clean就可以,例如需要去掉a1的特殊字符,公式为:
=clean(a1)
I. 清除excel所有不可见字符
CTRL+G调出定位,在左下角“定位条件”里选“对象”,试试
J. 如何消除不可见字符
CLEAN 函数说明
删除文本中不能打印的字符。对从其他应用程序中输入的文本使用 CLEAN 函数,将删除其中含有的当前操作系统无法打印的字符。例如,可以删除通常出现在数据文件头部或尾部、无法打印的低级计算机代码。