kmail
encodingdetector.hGo to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef ENCODINGDETECTOR_H
00024 #define ENCODINGDETECTOR_H
00025
00026 #include <qstring.h>
00027
00028 class QTextCodec;
00029 class QTextDecoder;
00030 class EncodingDetectorPrivate;
00031
00057 class EncodingDetector
00058 {
00059 public:
00060 enum EncodingChoiceSource
00061 {
00062 DefaultEncoding,
00063 AutoDetectedEncoding,
00064 BOM,
00065 EncodingFromXMLHeader,
00066 EncodingFromMetaTag,
00067 EncodingFromHTTPHeader,
00068 UserChosenEncoding
00069 };
00070
00071 enum AutoDetectScript
00072 {
00073 None,
00074 SemiautomaticDetection,
00075 Arabic,
00076 Baltic,
00077 CentralEuropean,
00078 ChineseSimplified,
00079 ChineseTraditional,
00080 Cyrillic,
00081 Greek,
00082 Hebrew,
00083 Japanese,
00084 Korean,
00085 NorthernSaami,
00086 SouthEasternEurope,
00087 Thai,
00088 Turkish,
00089 Unicode,
00090 WesternEuropean
00091 };
00092
00096 EncodingDetector();
00097
00101 EncodingDetector(QTextCodec* codec, EncodingChoiceSource source, AutoDetectScript script=None);
00102 ~EncodingDetector();
00103
00104
00105
00109 bool setEncoding(const char *encoding, EncodingChoiceSource type);
00110
00115 const char* encoding() const;
00116
00117 bool visuallyOrdered() const;
00118
00119
00120
00121
00122 void setAutoDetectLanguage( AutoDetectScript );
00123 AutoDetectScript autoDetectLanguage() const;
00124
00125 EncodingChoiceSource encodingChoiceSource() const;
00126
00131 bool analyze( const char *data, int len );
00132
00137 bool analyze( const QByteArray &data );
00138
00142 static AutoDetectScript scriptForName(const QString& lang);
00143 static QString nameForScript(AutoDetectScript);
00144 static AutoDetectScript scriptForLanguageCode(const QString &lang);
00145 static bool hasAutoDetectionForScript(AutoDetectScript);
00146
00147 protected:
00155 bool errorsIfUtf8 (const char* data, int length);
00156
00160 QTextDecoder* decoder();
00161
00162 private:
00163 EncodingDetectorPrivate* const d;
00164 };
00165
00166 #endif
|