【问题标题】:C++ Unicode Bullet PointC++ Unicode 项目符号
【发布时间】:2011-04-12 19:25:01
【问题描述】:

我正在尝试在我的 C++ 应用程序中插入 Unicode 字符 U+2022(子弹 )。

我不知道如何将 U+2022 转换为字符/字符串以在 std::string 构造函数中使用...

char bullet = char(0x2022);
mPassword.SetText( std::string(mText.length(), bullet) );

这个不行。希望你能帮忙!!

谢谢
opatut

【问题讨论】:

标签: c++ unicode char


【解决方案1】:

Unicode 字符的类型为 wchar_t(参见 C++ 标准的 §2.13.4)。您可以按如下方式使用它:

wchar_t bullet = L'\x2022';

在字符串中它看起来像:

std::wstring str_w_bullet( L"some text with \x2022" );

【讨论】:

  • 应该注意,根据您在 Linux 中的语言环境,std:string 在技术上被视为一系列 UTF-8 代码单元,因此它可以正确处理 unicode。但是,我不知道如果您想要除 ASCII 以外的任何内容并且想要在代码中设置它而不是读取已经是 unicode 的内容(您可能必须弄清楚每个代码是什么),您将如何单独设置它们中的任何一个单位而不是一次设置整个代码点)。但是,在 Windows 上,我认为您确实必须使用 std::wstring。
  • 我还是有问题。我根本没有得到我的输出的要点。 std::wcout 输出引号 (")
  • 问题出在控制台上。如果您使用 Windows,请检查 this 问题。
【解决方案2】:

使用std::wstring,它与std::string 相同,但专门用于wchar_t

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多