TSL语言基础 > TSL语言基础 > 基础知识 > TSL的数据类型 > String

ANSI字符串、Unicode字符串与UTF8字符串    

  • TSL语言默认的字符串均是ANSI类型的。
    但在语言内核已经支持了UNICODE,在字符串引号前加L就代表是一个UNICODE字符串。如L”CCC”表明为Unicode的字符串”CCC”。
     字符串内转义\u可以表达unicode字符,\u后默认为16进制的UNicode码,如L"\u5929\u8F6F"表达L"天软"
     #在Unicode字符串连接中被自动识别为Unciode码,默认为10进制,因而需要用0x代表16进制,如L""#0x5929#0x8F6F表达L"天软"

     TSL许多字符串相关函数都支持Unicode,函数版本一般是以W结尾,例如InttoStrW(1)的结果是L”1”。
     WideString函数可以把ANSI串转换为UNICODE串,例如WideString(“AAA”)的结果是L”AAA”。
     类似的, String函数可以把Unicode串转换为MBCS多字节ANSI串。在处理特殊的符号,以及一些特殊的中文时UNICODE具备一定的优势。
     如果不特殊说明,缺省TSL字符串均是ANSI的。
     Unicode和Ansi字符串的运算返回以左操作数的类型为准,如"喜欢"+L"天软"的结果是"喜欢天软",L"喜欢"+"天软"的结果是L"喜欢天软".
     TSL语言中大多数的算符、基础函数及基类都支持Unicode字符串。如字符串的拼接、比较等运算,字符串的截取与转换等基础模型,数据库、文件、邮件等处理基类等。

      TSL语言没有独立的UTF8字符串类型,UTF8字符串的本质就是一个字节串,也就是一种特殊的字符串。在绝大多数其他语言中也是如此。
      但TSL语言对UTF8的常量串提供了支持,和UNICODE字符串的前导符L类似的,UTF8字符串的字符前导为U,例如U"天软"表达的是UTF8串的天软。除此以外, TSL还提供了丰富的函数支持UTF8。
     
     

    具体示例可参考:FAQ:字符串的表达