wxString 格式的 Unicode 字符

wxString format Unicode character

本文关键字:字符 Unicode 格式 wxString      更新时间:2023-10-16
for(int i='א'; i<='ת'; i++)
    incList.Add( wxString::Format("%c", wxT(i));

我正在尝试使用 wxT 将 Unicode 字符添加到数组中。我收到此错误

error: 'Li' was not declared in this scope

导致错误的原因是什么,如何修复它?谢谢。

wxT() 是一个宏,定义如下:

#ifdef UNICODE
#   define wxT(x)  L##x
#else // !Unicode
#   define wxT(x)  x
#endif

所以wxT(i)当然会变得Li.它应仅与字符串文本一起使用。

此外,wxT()为什么要将 int 转换为字符串?为此使用itow

wxT()旨在

对字符串文字进行操作,而不是变量。

您可能想要类似wxString::FromUTF8(chars)wxString mystring2(chars, wxConvUTF8)的东西。简单地将 char 数组作为参数传递也可以,但取决于当前区域设置。

哦,当我们在它的时候...

for(int i='א'; i<='ת'; i++)

。请注意,在源中使用基本字符集(基本上是 ASCII-7)之外C++字符是实现定义的。您可能应该改用转义序列。