字符串,通俗来说,就是一串文本数据。
需要先了解以下几个基础知识
- 字符串编码,分 ASCII 和 Unicode 。变量类型分别是 ZString 和 WString
可以理解为,英文字符串和中文字符串 - 当 ZString 和 WString 相遇,不需要我们任何操作,FB语言内部会做编码统一操作。
Dim a As ZString * 10 = "中文"
Dim b As WString * 10 = "中文"
If a=b Then Print "正确"
- ZString 和 WString 遇到数据为0 就截断字符,String 可以包含 0 。
- String 和 StringW 类型是变长字符串,不需要指定长度。
- 字符串即时值,就是引号中的文字编码,默认为 ASCII

赋值给 WString 类型时,FB语言内部会自动转换编码后赋值。
当工程属性中,选中 Unicode 模式,此时引号中的文字编码为 Unicode

赋值给 ZString 类型时,FB内部会自动转换编码后赋值。
为了避免这样的编码转换,可以使用
Dim a As ZString * 10 = Str("中文")
Dim b As WString * 10 = WStr("中文")
- 在英文系统中,我们写的中文字会乱码(工程默认是 ASCII 模式)
Dim a As ZString * 10 = "中文"
Dim b As WString * 10 = "中文"
此时打印 a和b 变量会显示乱码
因此需要下列代码,打印中文才正常显示。
Dim a As zString * 10 = WStr("中文")
Dim b As WString * 10 = WStr("中文")
- 自从有浏览器以后,越来越多字符串编码使用 UTF8 ,此编码用 zString 类型使用。遇到要显示时,才用转换编码函数转换 ASCII 或 Unicode 来使用。没遇到显示,就 zString 类型处理。
评论一下?