Windows凭据提供程序中无法使用非ASCII字符重音符号

问题描述

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

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

但是,当我加载提供程序时,重音符号会作为一组随机字符生成,例如©或Ã。 显然看起来像是编码错误,但我找不到方法

凭证提供商是否支持特殊字符? 我知道认的法语提供者将显示重音符号。

非常感谢您。

解决方法

我最终从文件中将文本作为UTF-8加载,并使用此功能将其转换为UTF-16:

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

注意标志:CP_UTF8

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