【问题标题】:wxString format Unicode characterwxString 格式 Unicode 字符
【发布时间】:2015-07-03 00:18:56
【问题描述】:
for(int i='א'; i<='ת'; i++)
    incList.Add( wxString::Format("%c", wxT(i));

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

error: 'Li' was not declared in this scope

是什么导致了错误,如何解决?谢谢。

【问题讨论】:

  • 哪一行出现错误?

标签: c++ unicode wxwidgets


【解决方案1】:

wxT() 是这样定义的宏:

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

所以wxT(i) 当然会变成Li。它只能与字符串文字一起使用。

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

【讨论】:

    【解决方案2】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-01
      • 1970-01-01
      • 2010-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多