|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2018/5/11 11:28:01 |
标题: |
修复10.2.3中TRegEx的replace方法替换中文返回乱码的问题 |
浏览:1268 |
|
加入我的收藏 |
楼主: |
我在10.2.2中也遇到过这个问题,现在给出初步的修复方法: TPerlRegEx的FReplacement,FSubject都是UTF8String类型,但是Replacement,Subject属性返回的是string,这些属性的get及其它相关方法中,都使用的是string()作类型转换,但这个string()默认转换utf8到string的实现是有bug的,改为utf8tostring()后可正常返回中文。
附件是改好的System.RegularExpressionsCore单元。
不得不说,现在delphi本身的代码质量有时间真是不忍直视。
----------------------------------------------
- |
作者: |
|
2018/5/11 16:03:11 |
1楼: |
感谢!
----------------------------------------------
-
|
作者: |
majx (skin) |
★☆☆☆☆ |
-
|
普通会员 |
|
2018/5/11 19:25:11 |
2楼: |
谢谢楼主!!!
----------------------------------------------
majx,QQ 613354940
|
作者: |
bdl1 (bdl1) |
▲▲▲▲▲ |
-
|
普通会员 |
|
2018/5/12 8:48:14 |
3楼: |
谢谢楼主!!!!
----------------------------------------------
-我的博客
|
作者: |
|
2018/5/13 7:20:10 |
4楼: |
建议各位去 http://qc.embarcadero.com 提交 BUG。
----------------------------------------------
(C)(P)Flying Wang
|
作者: |
bjlg (蓝天) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2018/5/13 9:30:31 |
5楼: |
@bamlan (一丝清风):没有发现啊,
var reg: TPerlRegEx; begin reg := TPerlRegEx.Create; reg.Subject := '我爱DELPHI!'; reg.RegEx := '我'; reg.Replacement := '大家'; if reg.Match then reg.Replace; ShowMessage(reg.Subject); // 返回: 大家爱DELPHI! FreeAndNil(reg); end;
----------------------------------------------
http://delphi.icm.edu.pl/ftp/http://delphi-z.ru
|
作者: |
|
2018/5/13 12:29:48 |
6楼: |
@bjlg (蓝天)
试试: var reg: TPerlRegEx; begin reg := TPerlRegEx.Create; reg.Subject := '我爱DELPHI!'; reg.RegEx := '(\S+?)(.*)'; reg.Replacement := '大家abc$1好def$2'; if reg.Match then reg.Replace; ShowMessage(reg.Subject); FreeAndNil(reg); end;
----------------------------------------------
-
|
作者: |
bjlg (蓝天) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2018/5/13 13:23:04 |
7楼: |
@bamlan 都是一样的结果 我估计是是不是和系统有关,例如英文系统,可能出现问题,或者一些别的配置 为了避免文件我吧你的改成改成RegularExpressionsCore1
此帖子包含附件:
大小:180.4K |
----------------------------------------------
http://delphi.icm.edu.pl/ftp/http://delphi-z.ru
|
作者: |
|
2018/5/13 15:54:37 |
8楼: |
经过进一步测试,编译为64位Windows版本时才会乱码!32位Windows版本及64位Linux版本正常。
此帖子包含附件:
大小:73.2K |
----------------------------------------------
-
|
作者: |
|
2018/5/13 17:41:24 |
9楼: |
这个 BUG 500年之后,delphi官方应该会改掉。
----------------------------------------------
(C)(P)Flying Wang
|
|