无法在 Windows 凭据提供程序中使用非 ascii 字符(重音符号)

Unable to use non ascii chars (accents) in Windows Credentials Provider

我正在使用 Microsoft 的“全部示例 UI”示例创建 Windows 凭据提供程序。

作为讲法语的人,我需要使用这样的口音:“éàèê”。我所有的字符串都是宽字符字符串(语法:L"Numéro de téléphone"),我使用的所有字符串函数都是宽字符版本(wcsdup、wcscpy...)

但是当我加载我的提供程序时,重音符会生成一组随机字符,例如 © 或 Ã。 很明显是编码错误,但我找不到原因。

凭据提供程序是否支持特殊字符? 我知道法语的默认凭据提供程序会显示重音符号。

非常感谢。

我终于从文件中加载了 UTF-8 格式的文本,并使用此函数将其转换为 UTF-16 格式:

MultiByteToWideChar(CP_UTF8, 0, s.c_str(), slength, 0, 0);

注意标志:CP_UTF8

我使用了这些生成的字符串,并且有效。