Macos MAC-QString将空格替换为反斜杠空格
首先,我看到了 我目前正在Mac上使用Qt 5.8,并尝试了以下代码: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
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(" ", "\\ ");