Macos MAC-QString将空格替换为反斜杠空格

Macos MAC-QString将空格替换为反斜杠空格,macos,qt,replace,qstring,Macos,Qt,Replace,Qstring,首先,我看到了 我目前正在Mac上使用Qt 5.8,并尝试了以下代码: QString test("/Users/test/Documents/ASCII Tables.pdf"); qDebug() << test.replace(" ", "\\ "); 我得到的是添加了两条黑色斜线: "/Users/test/Documents/ASCII\\ Tables.pdf" 有人有什么建议吗 更新:(关于@docsteer的答案)我打算使用QString测试作为QProcess

首先,我看到了

我目前正在Mac上使用Qt 5.8,并尝试了以下代码:

QString test("/Users/test/Documents/ASCII Tables.pdf");
qDebug() << test.replace(" ", "\\ ");
我得到的是添加了两条黑色斜线:

"/Users/test/Documents/ASCII\\ Tables.pdf"
有人有什么建议吗


更新:(关于@docsteer的答案)我打算使用
QString测试作为
QProcess:start()
的一部分,例如:

QProcess process;
process.start("ls " + test);
process.waitForFinished(-1);
qDebug() << process.readAllStandardOutput();
qDebug() << process.readAllStandardError();

您在那里看到的不是字符串的实际内容。QDebug在打印字符时转义字符:

通常,QDebug在引号和变换中打印字符串 将不可打印字符转换为其Unicode值(\u1234)

要打印不可打印的字符而不进行转换,请启用 noquote()函数

如果您将代码更改为

qDebug().noquote() << test.replace(" ", "\\ ");

qDebug().noquote()您看到的不是字符串的实际内容。QDebug在打印字符时转义字符:

通常,QDebug在引号和变换中打印字符串 将不可打印字符转换为其Unicode值(\u1234)

要打印不可打印的字符而不进行转换,请启用 noquote()函数

如果您将代码更改为

qDebug().noquote() << test.replace(" ", "\\ ");

qDebug().noquote()嗨,谢谢你的通知,但我更新了问题,也许还有其他建议^_^好的,这是对原始问题的一点扩展。我手头没有Mac电脑来尝试这个,但我怀疑您需要使用带参数的QProcess,而不是将其全部放在命令中。尝试:
QProcess进程;QStringList参数;参数哦,是的,当使用
program
arguments
调用
process
时,我们不需要将空格转换为反斜杠空格。。。谢谢,谢谢你的通知,但是我更新了问题,也许是另一个建议^_^好的,这是对原始问题的一点扩展。我手头没有Mac电脑来尝试这个,但我怀疑您需要使用带参数的QProcess,而不是将其全部放在命令中。尝试:
QProcess进程;QStringList参数;参数哦,是的,当使用
program
arguments
调用
process
时,我们不需要将空格转换为反斜杠空格。。。谢谢
qDebug().noquote() << test.replace(" ", "\\ ");