启用多字节字符集的MFC应用程序是否支持UTF-8编码字符串



我有一个启用了多字节字符集的传统MFC应用程序。现在的要求是也支持UTF-8字符集。在Unicode环境中更改整个应用程序是一项庞大而危险的任务。

我找到了Boost。支持UTF-8转换的Locale lib。所以我的问题是,它能和我现有的Multibyte设置一起工作吗。或者在不将整个应用程序转换为Unicode的情况下使用任何其他方法。因为它使用了很多我不想接触的传统Windows API。我的简单要求是,很少有函数/方法可以生成和解析UTF-8字符。

项目参数"多字节字符集";定义,如何扩展通用文本映射。例如,在多字节项目中,SetWindowText被定义为SetWindowTextA,在Unicode项目中,定义为SetWindowTextW。这并不能阻止您在多字节项目中使用Unicode函数,方法是指定其全名,如SetWindowTextW

示例。MFC项目,Multibyte。

SetWindowText(_T("abc"));

这一行使用通用映射,扩展为:

SetWindowTextA("abc");

如果您将项目设置更改为Unicode,则同一行将展开为:

SetWindowTextW(L"abc");

在同一个多字节项目中,您可以显式调用Unicode函数:

SetWindowTextW(L"abc");

因此,答案是";是";,您可以将Unicode函数添加到Multibyte项目中,而无需将整个项目转换为Unicode。使用适当的类型,如wchar_twstring等,并显式调用字符串API。

相关内容

  • 没有找到相关文章

最新更新