Lazarus 0.9.26中,涉及范围最广的的改变就是所有的的String默认都采用UTF8编码,IDE终于有了完全的UTF8支持,以前在源码编辑器中“吃掉”半个汉字的情况不再出现.对于Linux下的用户来说这也是好消息,大家终于可以在源码编辑器中看到中文了.当然了,好东西总是代价比较昂贵的:旧代码和项目的迁移就变成了一个不小的问题.现在如果迁移旧项目到0.9.26会遇到以下的问题: 1.项目所有文件里面的中文字串都必须重新输入. 0.9.26提供了转换项目编码的工具:Convert e
最近在建词典,使用Trie字典树,需要把字符串分解成单个字.由于传入的字符串中可能包含中文或者英文,它们的字节数并不相同.一开始天真地认为中文就是两个字节,于是很happy地直接判断当前位置的字符的ASCII码是否处于0~127之间,如果是就提取一个字符,否则提取两个.在测试分字效果的时候,这种方法出了问题.比如我传一个"abcde一二三四五"进去,abcde可以正常分解成 a b c d e,而后面的"一二三四五"则成了乱码. 于是我开启了谷歌之旅,搜索"