不可见字符处理

图片 1ascii.jpg

 前言

上一章大家讲了一下将字符串中对应字符转化为ASCII码的函数,今日我们来一下看一下以此反向函数,正是将ASCII码转化为绝对应字符,在效果与利益上与函数string.byte()是互逆的。

难点陈说:在表列里有眼睛不可知字符,导致一些翻新或插队失败。
几年前首先次碰见这种问题是在读取考勤机人士音信时相遇的,折腾了少数年华,今后又蒙受了还不怎么新意识就顺手一齐记录下。

  • 原型:string.char
  • 演讲:接收0个可能三个参数,重回三个字符串,字符串长度等于参数个数,前提是每一参数作为ASCII码都有二个字符与之相对应,也正是说半数以上的数字是船到江心补漏迟的,这么些函数参数的ASCII码在跨平台方面不肯定是可移植的。

 

如下图所示
golds字段 看上去5个字符,长度则为44
,可判定有特殊字符存在此列中。

  • 率先新建二个文书命名称叫chartest.lua然后编写制定如下代码:

图片 2

 

-- 不传参数local ret = string.char();print("nthe ret of string.charprint-- 一个参数local retwith1param = string.char;print("nthe ret of string.charprint(retwith1param)-- 多个参数local retwith5param = string.char(48, 49 ,50, 65, 97);print("nthe ret of string.char(48, 49 ,50, 95, 96) :")print(retwith5param)-- 包含无效参数local retwith6param = string.char(48, 49 ,50, 257, 65, 97);print("nthe ret of string.char(48, 49 ,50, 257, 95, 96) :")print(retwith6param)
 基础知识准备 
  • 运行结果

贴多少个常用函数 

图片 3string_char.png

 1、获取字符的ASCII码 ASCII

  • 由第一组结果能够看看当不传参数时函数再次来到空字符串。
  • 从第二三组的结果能够看见假设是例行的ASCII码,则会回到一个字符串
  • 程序的末段报错了,那是因为蚕参数中有叁个不正规的参数205,未有相应的字符和其对应,故程序报错了。

    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。

    示例:

发表评论

电子邮件地址不会被公开。 必填项已用*标注