| 33 | inline bool hasBOM() const { return mGenerateBOM; } |
| 34 | |
| 35 | inline void setEncoding(const QByteArray &inEncoding) |
| 36 | { |
| 37 | assert(!inEncoding.isEmpty()); |
| 38 | |
| 39 | if(inEncoding == "UTF-8-BOM") |
| 40 | { |
| 41 | mGenerateBOM = true; |
| 42 | mEncoding = "UTF-8"; |
| 43 | } |
| 44 | else |
| 45 | { |
| 46 | mGenerateBOM = inEncoding.startsWith("UTF-16") || inEncoding.startsWith("UTF-32"); |
| 47 | mEncoding = inEncoding; |
| 48 | } |
| 49 | |
| 50 | mEncoder = QStringEncoder(mEncoding, mGenerateBOM ? QStringConverter::Flag::WriteBom : QStringConverter::Flag::ConvertInitialBom); |
| 51 | |
| 52 | assert(!mGenerateBOM || ((inEncoding.startsWith("UTF-16") || inEncoding.startsWith("UTF-32")) || inEncoding == "UTF-8-BOM")); |
| 53 | }; |
| 54 | |
| 55 | inline qint32 readChar(QString& s) |
| 56 | { |