我有一個應用程序必須用ASCII params啓動。它將它們視爲一個字節數組,因此它必須是ASCII而不是UTF-8等。這些值可能是非拉丁文的(因此它不是真正的ASCII,而是任何類似CP-1251的代碼頁)。
在bash,我可以啓動它作爲通過QProcess的8位參數
myapp --myparam $'abc...Z\xC0\xC1...\xFF'
要複製到剪貼板,開關以純文本模式
我不能找到一種方法,用QProcess中做到這一點...
它似乎不直接使用bash和啓動進程,所以我不能使用$'\xnn'
syntax。
它也不接受QString以外的其他形式的參數。在將params傳遞給應用程序之前,無法要求它執行QString::toLocal8Bit()
(所以我可以使用QTextCodec::setCodecForLocale()
以其他代碼頁來欺騙UTF-8)。
任何想法?
更新:
1.我在下面得到了正確的答案。
2,我還發現QProcess將QFile :: encodeName()應用於每個參數,因此可能會繞過QTextCodec::setCodecForLocale()
。
你碰巧知道如果我的應用程序的stderr通過proc.readAllStandardError()在這種情況下? – truf
我期待如此,但嘗試一下並找出答案。 – TheDarkKnight