linux 和 windows 下, 檔案編碼都已經設定為 UTF-8 帶BOM。
問題 : 程式中判斷 一個QString 是否和 一txt文本中字串是否相等(txt文本編碼為 UTF-8帶 BOM)。
在windows下二者是相等的,但是程式在Linux下編譯,得出的結果卻是不相等
uj5u.com熱心網友回復:
你把文本內容列印到控制臺看看,linux下從文本讀出來的字串帶行尾(\r\n或\n)uj5u.com熱心網友回復:
謝謝您的解答。列印出來文本是一樣的,沒有行尾。在Linux下 在中文字串前面加上 fromUtf8后,則和文本讀出內容相等。
這點我就不理解了,編譯器已經是UTF8格式了,為什么還要加上這句話呢?望回復,謝謝。
uj5u.com熱心網友回復:
你可能理解錯誤了。編碼除了源代碼編碼還有執行代碼編碼。類似:msvc:QMAKE_CXXFLAGS += -execution-charset:utf-8
msvc:QMAKE_CXXFLAGS += -source-charset:utf-8
uj5u.com熱心網友回復:
感謝回答。
請問一下 程式中的中文字串 設定編譯器編碼格式為 UTF8 ,這是設定的源代碼編碼還是執行代碼編碼?加上 fromutf8之后是改變了 源代碼編碼還是執行代碼編碼,關于編譯原理方面太欠缺,問的問題可能很幼稚,望解答
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/84477.html
標籤:Qt
下一篇:iOS開發布局
