在我用 C++ 开发的一个应用程序中,我必须显示“✓”标记。为此,我需要先在 std::string 或 char 中插入相同的内容。但是当我这样做时,我得到一个“?”标记为输出。我正在使用 VS2010 进行编码。请建议如何解决相同的问题。提前致谢。
最佳答案
似乎有一些基本的误解。
复选标记字符是 Unicode 0x2713。您不能将其作为单个字符存储在 std::string 中。 char 的最大值为 0xff (255)。它不适合。
如果您正在使用 C++ 为 Windows 开发 GUI,那么我猜想是 MFC。但是,如果您使用的是 std::string,那么情况可能并非如此。一些选择:
- 对于 MFC,您可以在 UNICODE 模式下重建您的应用程序。然后字符很短(16 位),您的复选标记将适合。
- 您可以使用 std::wstring 而不是字符串。这意味着对现有代码的更改。
- 您可以使用 UTF-8,它用多字节序列替换字符。不推荐在 Windows 中使用,即使您认为自己知道自己在做什么。非常不友好。
无论如何,如果您使用的是 GUI 和对话框,则必须确保它们是 Unicode 对话框,否则将无法正常工作。
有了更多的细节,我们可以给出更具体的建议。
关于c++ - 如何在使用 VS2010 的 C++ 编程中的 std::string 中插入复选标记 "✓",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22533115/