37class KEncodingProberPrivate
40 KEncodingProberPrivate(): prober(NULL), mStart(true) {};
41 ~KEncodingProberPrivate()
94 void unicodeTest(
const char *aBuf,
int aLen)
103 if ((
'\xBB' == aBuf[1]) && (
'\xBF' == aBuf[2]))
108 if ((
'\xFF' == aBuf[1]) && (
'\x00' == aBuf[2]) && (
'\x00' == aBuf[3]))
111 else if (
'\xFF' == aBuf[1])
116 if ((
'\x00' == aBuf[1]) && (
'\xFE' == aBuf[2]) && (
'\xFF' == aBuf[3]))
119 else if ((
'\x00' == aBuf[1]) && (
'\xFF' == aBuf[2]) && (
'\xFE' == aBuf[3]))
124 if ((
'\xFE' == aBuf[1]) && (
'\x00' == aBuf[2]) && (
'\x00' == aBuf[3]))
127 else if (
'\xFE' == aBuf[1])
159 return feed(data.data(), data.size());
165 return d->proberState;
166 if (d->proberState ==
Probing) {
168 d->unicodeTest(data, len);
170 return d->proberState;
172 d->prober->HandleData(data, len);
173 switch (d->prober->GetState())
176 d->proberState =
NotMe;
187 d->prober->DumpStatus();
189 return d->proberState;
194 return d->proberState;
198#ifndef KDE_NO_DEPRECATED
201 return qstrdup(
encoding().constData());
208 return QByteArray(
"UTF-8");
210 return QByteArray(d->prober->GetCharSetName());
218 return d->prober->GetConfidence();
223 return d->proberType;
228 d->setProberType(proberType);
236 else if (lang==
i18nc(
"@item Text character set",
"Disabled"))
238 else if (lang==
i18nc(
"@item Text character set",
"Universal"))
240 else if (lang==
i18nc(
"@item Text character set",
"Unicode"))
242 else if (lang==
i18nc(
"@item Text character set",
"Cyrillic"))
244 else if (lang==
i18nc(
"@item Text character set",
"Western European"))
246 else if (lang==
i18nc(
"@item Text character set",
"Central European"))
248 else if (lang==
i18nc(
"@item Text character set",
"Greek"))
250 else if (lang==
i18nc(
"@item Text character set",
"Hebrew"))
252 else if (lang==
i18nc(
"@item Text character set",
"Turkish"))
254 else if (lang==
i18nc(
"@item Text character set",
"Japanese"))
256 else if (lang==
i18nc(
"@item Text character set",
"Baltic"))
258 else if (lang==
i18nc(
"@item Text character set",
"Chinese Traditional"))
260 else if (lang==
i18nc(
"@item Text character set",
"Chinese Simplified"))
262 else if (lang==
i18nc(
"@item Text character set",
"Arabic"))
273 return i18nc(
"@item Text character set",
"Disabled");
276 return i18nc(
"@item Text character set",
"Universal");
279 return i18nc(
"@item Text character set",
"Arabic");
282 return i18nc(
"@item Text character set",
"Baltic");
285 return i18nc(
"@item Text character set",
"Central European");
288 return i18nc(
"@item Text character set",
"Cyrillic");
291 return i18nc(
"@item Text character set",
"Greek");
294 return i18nc(
"@item Text character set",
"Hebrew");
297 return i18nc(
"@item Text character set",
"Japanese");
300 return i18nc(
"@item Text character set",
"Turkish");
303 return i18nc(
"@item Text character set",
"Western European");
306 return i18nc(
"@item Text character set",
"Chinese Traditional");
309 return i18nc(
"@item Text character set",
"Chinese Simplified");
312 return i18nc(
"@item Text character set",
"Korean");
315 return i18nc(
"@item Text character set",
"Thai");
318 return i18nc(
"@item Text character set",
"Unicode");
void reset()
reset the prober's internal state and data.
ProberType proberType() const
KEncodingProber(ProberType proberType=Universal)
Default ProberType is Universal(detect all possibe encodings)
const char * encodingName() const
ProberState feed(const QByteArray &data)
The main class method.
static QString nameForProberType(ProberType proberType)
map ProberType to language string
ProberState state() const
void setProberType(ProberType proberType)
change current prober's ProberType and reset the prober
static ProberType proberTypeForName(const QString &lang)
QByteArray encoding() const
@ Probing
Need more data to make a decision.
@ NotMe
Sure not included in current ProberType's all supported encodings
@ FoundIt
Sure find the encoding.
QString i18nc(const char *ctxt, const char *text)
Returns a localized version of a string and a context.