gpt4 book ai didi

delphi - delphi 7 中的 utf8 解码

转载 作者:行者123 更新时间:2023-12-03 15:10:34 29 4
gpt4 key购买 nike

我需要使用delphi 7 将字符串从utf8 转换为宽字符串。谁能告诉我为什么下面的代码在delphi 7中不起作用? Utf8Decode函数的参数只是一个示例。

var ws: WideString;
begin
ws := Utf8Decode('[أمبير] خطأ تيار- تيار Ů…ŘŞŮاصل Ů…Ř·Ů„Ů‚');
end;

在delphi 7中它给了我很多问号,但是在bds2006中它工作得很好。

我需要打开一些编译器指令吗?或者如何在 delphi 7 中将 utf8String 转换为 Widestring?

解决方案

Utf8Decode函数没有任何问题,Delphi Code Insight Tooltip表达式求值输出误导了我,它无法显示Widestrings。见下图:

Tooltip expression evaluation

但是 MessageBoxW 可以显示文本:

enter image description here

最佳答案

我认为问题在于 Delphi 7 只能对源文件使用 ANSI。 Delphi 的更高版本将对源文件使用 UTF-8,事实上您可以指定您希望对源文件使用的编码。

如果将 UTF-8 编码的字符串解释为 ANSI(例如使用 Notepad++),则可以将 UTF-8 编码的文字嵌入到 ANSI 源代码文件中。例如,此代码使用 Delphi 6 生成一个包含文本的消息框。

ws := UTF8Decode('[ŘÅمبير] خط؊تيار- تيار Ů…ŘŞŮاصل Ů…Ř·Ů„Ů‚');
MessageBoxW(0, PWideChar(ws),
PWideChar(WideString(FloatToStr(CompilerVersion))), 0);

enter image description here

尝试像这样处理字符串文字根本不切实际。您可能需要开始将它们放入资源中。

关于delphi - delphi 7 中的 utf8 解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9177204/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com