“如何插入复选标记”✓&引用;在std::字符串在c++;使用VS2010编程 我的一个应用程序,我在C++中开发,我必须显示✓" 标记。为此,我需要首先在std::string或char中插入相同的内容。但当我这样做时,我会得到一个“?”标记作为输出。我正在使用VS2010进行编码。请建议如何解决相同的问题。提前感谢。

“如何插入复选标记”✓&引用;在std::字符串在c++;使用VS2010编程 我的一个应用程序,我在C++中开发,我必须显示✓" 标记。为此,我需要首先在std::string或char中插入相同的内容。但当我这样做时,我会得到一个“?”标记作为输出。我正在使用VS2010进行编码。请建议如何解决相同的问题。提前感谢。,c++,visual-studio-2010,visual-c++,C++,Visual Studio 2010,Visual C++,似乎有一些基本的误解 选中标记字符为Unicode 0x2713。不能将其作为单个字符存储在std::string中。字符的最大值为0xff(255)。它不适合 如果你正在使用C++开发Windows的GUI,那么我会猜测MFC。但是如果你使用的是STD::string,那么也许不是这样。 对于MFC,您可以在UNICODE模式下重建应用程序。然后字符很短(16位),您的复选标记将很合适 您可以使用std::wstring而不是string。这意味着对现有代码的更改 你可以使用UTF-8,它用多

似乎有一些基本的误解

选中标记字符为Unicode 0x2713。不能将其作为单个字符存储在std::string中。字符的最大值为0xff(255)。它不适合

如果你正在使用C++开发Windows的GUI,那么我会猜测MFC。但是如果你使用的是STD::string,那么也许不是这样。

  • 对于MFC,您可以在UNICODE模式下重建应用程序。然后字符很短(16位),您的复选标记将很合适
  • 您可以使用std::wstring而不是string。这意味着对现有代码的更改
  • 你可以使用UTF-8,它用多字节序列替换字符。在Windows中不推荐使用,即使你认为自己知道自己在做什么。非常不友好
  • 在任何情况下,如果您使用的是GUI和对话框,则必须确保它们是Unicode对话框,否则将无法工作


    还有一些细节,我们可以给出更具体的建议。

    试着看一下,看看它是否回答了您的问题。
    std::string
    不是用来处理unicode字符的。嗨,肖恩·达根,在您提到的页面中,它是一个字符,但我需要同样的std::string。如果您有任何帮助,我们将不胜感激。谢谢。您想要控制台吗输出还是GUI应用程序中的某个标签?如果是前者,我建议直接使用
    WriteConsoleW
    ,或者使用提供的任何解决方案。还记得将控制台字体设置为具有您试图打印的字符的字体。@user3164377然后使用GUI的unicode感知字符串类,或者在最坏的情况下,使用
    std::wstring
    (在Windows上,
    std::string
    可以在其他操作系统上使用)。在Visual Studio中,您应该能够将此网页中的图示符复制粘贴到字符串或(宽)中字符文字。您好,谢谢您的帮助。我的GUI支持unicode。问题是我正在Windows中使用VS2010来开发此代码。我无法将unicode转换为std::string。我尝试使用std::wstring s=L“✓“和std::string st(s.begin(),s.end());将wstring转换为std::string。它也不起作用。请建议一些解决方案。我知道我已经接近要点,但需要lil push。谢谢。根据我的回答,您永远无法将16位Unicode字符(如0x2713)转换为8位字符。它不适合。请解释您试图实现的内容或显示代码,可能会有解决方案激动。