冥界3大法王 发表于 2023-5-12 08:38

delphi的字符串需要到其他软件里边作dll,但是它是utf-8的

const
PLUGIN_NAME: PAChar = 'More Tools'; 这玩意该如何表示?(它是菜单)Englishi不要滴
直接传 [%U8BB0%U5F55%U8BFB%U53D6%U5230%U7684%U6CE8%U518C%U8868%U952E%U503C] 原样输出

冥界3大法王 发表于 2023-5-12 09:02

function ToUTF8Encode(str: string): string;
var
b: Byte;
begin
for b in BytesOf(UTF8Encode(str)) do
    Result := Format('%s%%%.2x', );
end;




const
PLUGIN_NAME: PAChar = PAnsiChar(AnsiString(ToUTF8Encode('更多工具')));这样报错啊。

yk2014 发表于 2023-5-12 09:33

转成BASE64传过去;另一边收到后用base64解码成字节数组,再把用UTF8解析字节数组

lovemit 发表于 2023-5-12 11:47

没太明白标题啥意思{:1_896:}
是向其他dll传入utf8字符串吗?

冥界3大法王 发表于 2023-5-12 12:18

lovemit 发表于 2023-5-12 11:47
没太明白标题啥意思
是向其他dll传入utf8字符串吗?

对啊,怎么传呢?
问题还有一个QT的后娘(要经他之手)

DEATHTOUCH 发表于 2023-5-12 13:55

用UTF8String类型的字符串吧。有utf8encode函数的应该。

freecat 发表于 2023-5-12 15:00

写到TBytes 再传 @TBytes过去

9908006 发表于 2023-5-14 22:18

页: [1]
查看完整版本: delphi的字符串需要到其他软件里边作dll,但是它是utf-8的