KCodecs 5.109.0
kcharsets.h
1/*
2 This file is part of the KDE libraries
3 SPDX-FileCopyrightText: 1999 Lars Knoll <knoll@kde.org>
4
5 SPDX-License-Identifier: LGPL-2.0-or-later
6*/
7#ifndef KCHARSETS_H
8#define KCHARSETS_H
9
10#include <kcodecs_export.h>
11
12#include <QCoreApplication>
13#include <QList>
14#include <QStringList>
15#include <memory>
16
17#include "kcodecs.h"
18
19class KCharsets;
20class KCharsetsPrivate;
21
22class QChar;
23class QString;
24class QTextCodec;
25
26namespace KCodecs
27{
28bool parseEncodedWord(const char *&, const char *, QString *, QByteArray *, QByteArray *, const QByteArray &, CharsetOption);
29QByteArray encodeRFC2047String(const QString &src, const QByteArray &charset);
30};
31
41class KCODECS_EXPORT KCharsets
42{
43 Q_DECLARE_TR_FUNCTIONS(KCharsets)
44
45protected:
50
51public:
55 virtual ~KCharsets();
56
57#if KCODECS_ENABLE_DEPRECATED_SINCE(5, 101)
66 KCODECS_DEPRECATED_VERSION(5, 101, "use QTextCodec codecForName or QStringEncoder")
67 QTextCodec *codecForName(const QString &name) const;
68#endif
69
70#if KCODECS_ENABLE_DEPRECATED_SINCE(5, 101)
85 KCODECS_DEPRECATED_VERSION(5, 101, "use QTextCodec codecForName or QStringEncoder")
86 QTextCodec *codecForName(const QString &n, bool &ok) const;
87#endif
88
94
103 static QChar fromEntity(const QString &str);
104
114 static QChar fromEntity(const QString &str, int &len);
115
122 static QString toEntity(const QChar &ch);
123
130 static QString resolveEntities(const QString &text);
131
136 QStringList availableEncodingNames() const;
137
142 QStringList descriptiveEncodingNames() const;
143
149 QList<QStringList> encodingsByScript() const;
150
156 QString descriptionForEncoding(const QString &encoding) const;
157
163 QString encodingForName(const QString &descriptiveName) const;
164
165private:
166#if KCODECS_ENABLE_DEPRECATED_SINCE(5, 101)
179 KCODECS_DEPRECATED_VERSION(5, 101, "use QTextCodec codecForName or QStringEncoder")
180 QTextCodec *codecForNameOrNull(const QByteArray &n) const;
181#endif
182
183private:
184 std::unique_ptr<KCharsetsPrivate> const d;
185 friend struct KCharsetsSingletonPrivate;
186 friend bool KCodecs::parseEncodedWord(const char *&, const char *, QString *, QByteArray *, QByteArray *, const QByteArray &, KCodecs::CharsetOption);
187 friend QByteArray KCodecs::encodeRFC2047String(const QString &src, const QByteArray &charset);
188 friend class KCharsetsTest;
189};
190
191#endif
Charset font and encoder/decoder handling.
Definition kcharsets.h:42
QStringList descriptiveEncodingNames() const
Lists the available encoding names together with a more descriptive language.
static QString resolveEntities(const QString &text)
Scans the given string for entities (like &amp;) and resolves them using fromEntity.
QList< QStringList > encodingsByScript() const
Lists the available encoding names grouped by script (or language that uses them).
QString encodingForName(const QString &descriptiveName) const
Returns the encoding for a string obtained with descriptiveEncodingNames().
static QChar fromEntity(const QString &str, int &len)
Overloaded member function.
static QString toEntity(const QChar &ch)
Converts a QChar to an entity.
KCharsets()
Protected constructor.
QStringList availableEncodingNames() const
Lists all available encodings as names.
static KCharsets * charsets()
The global charset manager.
static QChar fromEntity(const QString &str)
Converts an entity to a character.
QString descriptionForEncoding(const QString &encoding) const
Returns a long description for an encoding name.
virtual ~KCharsets()
Destructor.
A wrapper class for the most commonly used encoding and decoding algorithms.
Definition kcharsets.h:27
CharsetOption
Charset options for RFC2047 encoder.
Definition kcodecs.h:291
QByteArray encodeRFC2047String(const QString &src, const QByteArray &charset)
Encodes string src according to RFC2047 using charset charset.