wxString 格式 Unicode 字符

wxString format Unicode character

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 转换为 string?为此使用 itow

wxT() 用于操作字符串文字,而不是变量。

您可能想要类似于 wxString::FromUTF8(chars)wxString mystring2(chars, wxConvUTF8) 的内容。简单地传递一个字符数组作为参数也可以,但这取决于当前的语言环境。

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

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

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