[Lazarus/freepascal]在Lazarus中对字符串进行代码页转换[zt]
clq
浏览(434) -
2019-05-14 14:02:15 发表
编辑
关键字: lazarus
[2025-03-31 05:25:09 最后更新]
在Lazarus中对字符串进行代码页转换 2017年08月22日 22:29:26 池龙 阅读数:770 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/poolord/article/details/77488704 由于Lazarus基于UTF-8,因此当读写Windows建立的纯文本文件的时候,由于其中的中文使用GBK(CP936)编码,可能会出现错误。此时可使用Lazarus自带的代码页转换单元LConvEncoding对编码进行转换。 如UTF8和GBK互转 function CP936ToUTF8(const s: string): string; // Chinese function UTF8ToCP936(const s: string; SetTargetCodePage: boolean = false): RawByteString; // Chinese, essentially the same as GB 2312 and a predecessor to GB 18030 1 2 如指定代码页之间互转 function ConvertEncoding(const s, FromEncoding, ToEncoding: string {$ifdef FPC_HAS_CPSTRING}; SetTargetCodePage: boolean = false{$endif}): string; 1 2 3 注:GB18030由于包含部分四字节字符,实际其代码页CP54936是不能使用的,但是由于GB18030向下兼容目前中文Windows系统使用的GBK,而GBK又向下兼容GB2312(CP20936),所以实际操作中按CP936处理即可。
clq
2019-05-14 16:22:28 发表
编辑
//过滤并且有内容发给程序 s := Utf8ToAnsi(s); //s := LConvEncoding.UTF8ToCP936(s);//la 下必须是这个函数, Utf8ToAnsi 是不行的
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.