当前位置: 首页 > 知识库问答 >
问题:

替换unicode转义字符串中的反斜杠

璩华辉
2023-03-14

我想使用QNetworkAccessManager::POST方法发送POST请求,但是我的JSON有一些国际字符,比如surunn。

不幸的是,我的WebAPI在从QByteArray格式解码这个字符串时遇到了一些问题:“\xc4\x99\xc4\x85”

使用curl时,我的API可以很好地处理非转义字符串和unicode转义字符串:\u0119\u0105

我尝试了此操作,但在将QString转换为unicode后,转义了QString:

QString toUnicodeEscaped(const QString& str){
    QString escaped;
    escaped.reserve(6 * str.size());
    for (QString::const_iterator it = str.begin(); it != str.end(); ++it) {
        QChar ch = *it;
        ushort code = ch.unicode();
        if (code < 0x80) {
            escaped += ch;
        } else {
            escaped += "\\u";
            escaped += QString::number(code, 16).rightJustified(4, '0');
        }
    }
    return escaped;
}

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QString s = "ęą";
    qDebug() << "s: " << toUnicodeEscaped(s);
}

我有两个反斜杠字符串:

s:  "\\u0119\\u0105"

我试图用一个反斜杠替换两个反斜杠,但没有成功:

qDebug() << "s: " << toUnicodeEscaped(s).replace("\\\\","\\");

我该如何替换它们?

共有1个答案

姬俊驰
2023-03-14

“\xc4\x85\xc4\x99”是以UTF-8编码的“gaRann”。若要将其转换为QString,请使用QString::FromutF8

该标准要求将JSON编码为UTF-8、UTF-16或UTF-32,因此通常情况下不会对所使用的编码产生混淆。如果您的web API实现得当,则不必转义这些字符。

 类似资料:
  • 问题内容: 我该怎么做反斜杠的字符串替换。 输入源字符串: 在上面的字符串中,我想用“ /”替换“ \ /”; 更换后的预期产量: 我从第三方获得源字符串,因此可以控制字符串的格式。 这就是我尝试过的 试用1: 异常靠近索引1的意外内部错误\ 试用2: 无异常,但不执行必需的替换。什么都不做。 试用3: 无异常,但不执行必需的替换。什么都不做。 问题答案: 是不可变的-您在其上调用的每个方法都不会

  • 问题内容: 我需要在路径字符串中替换为,但是以下代码失败。 有什么有用的建议吗? 问题答案: 使用函数filepath.ToSlash将操作系统路径分隔符替换为路径中的“ /”。 在Windows上,函数返回。在其他操作系统上,该函数按原样返回path参数。

  • 问题内容: 我需要将unicode字符串转换为具有以unicode编码的非ascii字符的字符串。例如,字符串“汉字Max”应显示为“ \ u6F22 \ u5B57 Max”。 我尝试过的 的不同组合 新的String(sourceString.getBytes(encoding1),encoding2) Apache StringEscapeUtils也会转义ascii字符,例如双引号 Str

  • 问题内容: 在解析包含unicode转义序列的json字符串时,存在一个长期存在的错误。似乎需要修复该错误,这种错误可能很快就不会发生,因此我正在寻找一种在R中创建解决方法的方法,该方法在将序列提供给json解析器之前先取消序列化。 一些上下文:json数据始终是unicode,默认情况下使用,因此通常不需要转义。但是出于历史原因,json确实支持转义的unicode。因此json数据 和 是等效

  • 我在看这个问题:python3用单反斜杠代替双反斜杠[duplicate] 并筛选出对类似问题的回答:Python 将 \ 替换为 \ ,为什么 Python 的原始字符串文本不能以单个反斜杠结尾?,如何在python中取消scapeunicode转义字符串? 当我意识到没有一个答案真正解决这个问题时。假设我有一个损坏的unicode字符串,它包含转义反斜杠和转义字符: 当我打印它时,一些字符评估

  • 所以,我在Node.js中使用multer,它给出了上传图像的反斜杠路径,但这不起作用,因为我需要将其转换为URL。 这是我得到的输出: 但是,我想用正斜杠替换图像前的反斜杠。 我试过这个: 但是,它只是去掉了反斜杠: 附:我知道这个网站上有这样的问题,但他们没有帮助我。例如,multer:文件的路径是不对的对我没有帮助,所以请不要将此标记为重复问题。多谢了。