0
4

2 回答 2

1

这实际上是一个毛茸茸的问题,尽管它起初看起来并不像它。您最好的选择是使用 Unicode 控制序列,而不是使用源代码编辑器添加特殊字符。

wxString ops[]={L"+", L"-", L"*", L"\u00F7"};

您需要确保正确编译 √、÷ 和 × 等字符。

您的源文件 (.cpp) 需要以确保编译器生成正确字符的方式存储它们。这比看起来要难,尤其是当涉及到 svn、git、windows 和 linux 时。

大多数时候 .cpp 文件是 ANSI 或 8 位编码的,并且不支持开箱即用的 Unicode 常量。

您可以将源文件保存在 UTF-8 代码页中,以便保留这些字符。但并非所有编译器都接受 UTF-8

最好的方法是使用 Unicode 控制字符对它们进行编码。wxString div(L"\u00F7"); 是 ÷ 的字符串。或者在你的情况下可能是 wxChar div('\u00F7')。您必须查找其他特殊字符的 Unicode 控制序列。这样,您的源文件将仅包含 ANSI 字符,并且将被所有编译器接受。当您与不同的操作系统平台交换源文件时,您还将避免代码页问题。

然后你必须确保你编译 wxWidgets 时具有 UNICODE 意识(尽管我认为这是 wx3.x 的默认设置)。然后,如果您的操作系统支持它,这些特殊字符应该会显示出来。

阅读 Unicode 控件(维基百科)。在 utf8everywhere.org 中也可以找到很好的输入。该文件.editorconfig也可以提供帮助。

于 2021-06-04T18:10:38.193 回答
0

更喜欢使用wchar_t而不是int.

wchar_t ops[10] = {L'+', L'-', L'*', L'/', L'^', L'√', L'÷', L'×'};

这些微不足道地支持您描述的字符,并且微不足道且正确地转换为wxStrings。

于 2021-06-04T18:03:58.460 回答