【问题标题】:How to insert a unicode special character in QString?如何在 QString 中插入 unicode 特殊字符?
【发布时间】:2016-02-05 02:37:32
【问题描述】:

我正在尝试在 QString 中插入一个特殊的 unicode 字符 (0xFD3F)。

我试图创建QChar(0xFD3F),但是当输出这个字符并在十六进制编辑器中查看它时,它显示0x3F3F。 我也找不到在 QString 中按十六进制或十进制表示插入字符的函数。

【问题讨论】:

    标签: qt unicode qstring


    【解决方案1】:

    像这样使用 QString::fromWCharArray:

    QString::fromWCharArray(L"Hello \uFD3F  Good bye")
    

    【讨论】:

    • 对不起@Vladislav。也只有 0x3F。不过谢谢你把这种方式介绍给我。
    • 你的回答是对的,问题出在我身上。我会接受它,但@excalibur1491 在你面前回答了一个正确的答案。无论如何,谢谢你,祝你提高分数,我相信你会获得高分:)。
    【解决方案2】:

    像这样使用QString::fromUtf8

    QString::fromUtf8("Hello \uFD3F Good bye")

    【讨论】:

    • 我认为问题出在角色本身,我正试图弄清楚它为什么会这样做
    • 这是唯一在您的十六进制编辑器中表现类似的字符吗?如果您正常打印(仅在终端上),它是否打印正确的字符? (即它是否打印“)”?)
    • 我的错,你是绝对正确的。我犯了两个错误,首先我正在编写一个用于测试的流而没有将编解码器设置为 UTF-8,其次我希望在十六进制编辑器中找到 0xFD 0x3F 而FD3F 是 unicode 点而不是 UTF-8 中的编码。 UTF-8 中的实际编码是0xEF 0xB4 0xBF。我开始了解 Unicode 和编码之间的区别。对于任何想知道的人,请阅读此joelonsoftware.com/articles/Unicode.html。谢谢@excalibur,你的回答是对的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    • 2019-08-24
    • 1970-01-01
    • 2014-07-14
    • 2016-11-24
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多