C#SetWindowTextW中的俄语字符

问题描述 投票:0回答:1

我基本上是用这个:

[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
public static extern bool SetWindowTextW(IntPtr hWnd, string lpString);

SetWindowTextW(HWnd, "лфорфпылвоарпфлыьтвмлафывафыва")

设置窗口的标题,但标题最终显示为ð╗Ðäð¥ÐÇÐäð┐Ðïð╗ð▓ð¥ð░ÐÇð┐Ðäð╗ÐïÐîÐéð▓ð╝ð╗ð░ÐäÐïð▓ð░ÐäÐïð▓ð░

我认为这与编码错误有关。有趣的是,如果我在TextBox中键入字符串并将属性textbox.Text发送到相同的函数,它似乎可以工作。

我从API获得了类似的字符串,因此仅键入它并保存输出是不可能的。

((我知道上面代码中的文本只是随机字符,但结果是与实际单词类似的混乱)

c# .net string character-encoding interop
1个回答
0
投票

尝试使用L进行字面量前缀。

SetWindowTextW(HWnd, L"лфорфпылвоарпфлыьтвмлафывафыва")

© www.soinside.com 2019 - 2024. All rights reserved.