}
QChar UncompressedReader::readChar() {
- char c[2]={0};
+ char c[4]={0};
+ QString cha;
+
_stream.readRawData(c,1);
- QString cha(QString::fromUtf8(c));
- if(!cha.at(0).isLetter() && c[0]!=0){
+ if(((unsigned char)c[0])>127){
_stream.readRawData(c+1,1);
- cha=QString::fromUtf8(c);
+ if(((unsigned char)c[1])>127 && ((unsigned char)c[1])<192){
+ _stream.readRawData(c+2,1);
+ if(((unsigned char)c[2])>127 && ((unsigned char)c[2])<192)
+ _stream.readRawData(c+3,1);
+ }
}
+
+ cha=QString::fromUtf8(c);
return cha.at(0);
}
qint32 value;
_stream>>value;
_stream.setByteOrder(QDataStream::LittleEndian);
-
return value;
}