字符集
CBrother默认字符集为utf-8,*.cb文件也需要使用utf-8,如果使用了其他编码,会出现编译不通过或者乱码的情况。
字符串
var str = "aaaa";
var str2 = "中文";
如上,凡是代码里双引号直接写出来的字符串都是utf-8
外来字符串
外来字符串指从文件里读取,或者从网络接收的数据。 假设工作目录下有一个gbk文件格式char.txt,内容为"aaa中文"。
function main(parm)
{
var file = new File(GetRoot() + "char.txt");
var str = file.read();
print str;
}
结果:
CBrother所有的字符串处理都是按照utf-8格式来的,所以print打印之后中文成了乱码。
CBrother的变量可以保存一个非utf-8的字符串,如果你只是临时存放,后续要保持原格式存入文件或者通过网络发送,那么你并不需要处理它。
但是如果你后续是要在Cbrother内部对这个字符串进行处理,那么你需要转码。
function main(parm)
{
var file = new File(GetRoot() + "char.txt");
var str = file.read();
var utf8str = str_convert(str,"gbk","utf-8");
print str;
print utf8str;
}
结果:
转码
Cbrother提供了str_convert方法,来做字符串的转码工作。
str_convert(str,"srcCode","tagCode") | 将str从srcCode编码转化到tagCode编码 | var str = str_convert("aaa","utf-8","gbk") |
---|
支持转换格式 "gbk","utf-8","utf-16","utf-32","ascii","wstring"
gbk,utf-8,utf-16,utf-32
标准编码
wstring
非标准编码,是为了和c语言中的wchar_t对应。可以称作宽字符。宽字符在windows下编码为utf-16,在linux和macos上utf-32编码。
ascii
计算机本地字符集,中文windows系统为gbk,中文繁体系统为big5,linux和macos均为utf-8。为了考虑代码的跨平台性,建议不要使用。