软盘君
本站的沙雕站长,半吊子运维
Floppy β Studio

Lazarus中向标签caption赋值时出现乱码

近期在为某平台写客户端(当然是会开源的),使用Lazarus与Free Pascal进行开发。在将部分从接口中获取到的信息展示到同一个Label上(赋值caption)时遇到了编码错误的问题。

在必应上查了一下,前不见古人,后不见来者,我认为这是我使用的某个库(fcl-json)的问题(那个库在fp wiki里面的中文页面还是我翻译出来的(骄傲)),也有可能是用fp web读API的时候遇到了问题,也许是其返回的值的数据类型的问题,导致在将固定的AnsiString与其返回值相加时出现编码错误。

解决问题

Free Pascal中默认的string表示的是AnsiString,但我使用fpweb获取的网页(应该)使用了UTF-8,因此需要调用函数将所有UTF-8的字符串转换为AnsiString

最后,我在每个JSON对象的String元素外面套了个Utf8ToAnsi函数,问题得到解决。

See also:Utf8ToAnsi (freepascal.org)

本文章(Lazarus中向标签caption赋值时出现乱码)使用CC BY-SA 3.0进行许可,转载请注明出处:https://www.iruanp.com/archives/1157 如果你认为我们的文章对您有帮助,请在Youtube订阅软盘君的频道

Floppy

文章作者

生命不息,折腾不止~这是一个沙雕博主,不务正业的那种,还喜欢瞎折腾~

发表回复

textsms
account_circle
email

14 + 9 =

Floppy β Studio

Lazarus中向标签caption赋值时出现乱码
近期在为某平台写客户端(当然是会开源的),使用Lazarus与Free Pascal进行开发。在将部分从接口中获取到的信息展示到同一个Label上(赋值caption)时遇到了编码错误的问题。 在必应上…
扫描二维码继续阅读
2022-09-21