- QT默認(rèn)源碼編碼為不帶
BOM的UTF-8
- vc編譯器支持帶
BOM的UTF-8編碼的源碼,如果編碼為不帶BOM的UTF-8,且編碼含有中文,編譯時(shí)會(huì)有C4819警告,甚至導(dǎo)致編譯或者運(yùn)行出現(xiàn)錯(cuò)誤。 - 對(duì)于QT文件編碼選項(xiàng):
如果選擇“如果編碼是UTF-8則添加”,實(shí)際上,創(chuàng)建項(xiàng)目時(shí),默認(rèn)編碼仍是無(wú)QT文件編碼選項(xiàng)BOM的UTF-8,只有當(dāng)源碼中包含漢字時(shí),文件才會(huì)添加BOM。另外注意默認(rèn)編碼的設(shè)置實(shí)際上只是用于qtcreator讀取源碼程序,使用qtcreator創(chuàng)建文件時(shí)默認(rèn)編碼仍然會(huì)是UTF-8。 - 對(duì)于QT的Project文件(*.pro)僅支持無(wú)
BOM的UTF-8編碼,qmake并不支持其他編碼的pro文件 - 對(duì)于gcc來(lái)講,據(jù)說(shuō)高于4.4.0的支持帶BOM的UTF編碼,測(cè)試4.1.1(RHEL5.0)存在編譯不通過(guò)。因此對(duì)于ARM程序來(lái)講,仍然推薦UTF-8編碼。
綜上
- 開(kāi)發(fā)上位機(jī)程序,用于win或者linux(gcc版本大于4.4.0),使用帶BOM的UTF-8
- 其他,推薦不帶BOM的UTF-8
