wxString格式的Unicode字符

时间:2015-04-24 11:48:07

标签: c++ unicode wxwidgets

for(int i='א'; i<='ת'; i++)
    incList.Add( wxString::Format("%c", wxT(i));

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

error: 'Li' was not declared in this scope

导致错误的原因是什么,以及如何解决?感谢。

2 个答案:

答案 0 :(得分:1)

wxT()是一个定义的宏:

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

当然,wxT(i)变为Li。它应该只用于字符串文字。

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

答案 1 :(得分:0)

wxT()用于对字符串文字进行操作,而非变量。

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

哦,虽然我们正在努力......

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

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