Floppy β Studio
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)

发表回复

textsms
account_circle
email


Floppy β Studio

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