KRemoteEncoding Class

Allows encoding and decoding properly remote filenames into Unicode. More...

Header: #include <KRemoteEncoding>
CMake: find_package(KF6 REQUIRED COMPONENTS KIO)
target_link_libraries(mytarget PRIVATE KF6::KIOCore)

Public Functions

KRemoteEncoding(const char *name = nullptr)
QString decode(const QByteArray &name) const
QByteArray directory(const QUrl &url, bool ignore_trailing_slash = true) const
QByteArray encode(const QString &name) const
QByteArray encode(const QUrl &url) const
const char *encoding() const
QByteArray fileName(const QUrl &url) const
void setEncoding(const char *name)

Detailed Description

Certain protocols do not specify an appropriate encoding for decoding their 8-bit data into proper Unicode forms. Therefore, KIO workers should use this class in order to convert those forms into QStrings before creating the respective KIO::UDSEntry. The same is true for decoding URLs to its components.

Each KIO::WorkerBase has one object of this kind, even if it is not necessary. It can be accessed through KIO::WorkerBase::remoteEncoding.

Member Function Documentation

[explicit] KRemoteEncoding::KRemoteEncoding(const char *name = nullptr)

Constructor.

Constructs this object to use the given encoding name. If name is a null pointer, the standard encoding will be used.

QString KRemoteEncoding::decode(const QByteArray &name) const

Converts the given full pathname or filename to Unicode. This function is supposed to work for dirnames, filenames or a full pathname.

QByteArray KRemoteEncoding::directory(const QUrl &url, bool ignore_trailing_slash = true) const

Converts the given URL into 8-bit form and separate the dirname from the filename. This is useful for worker functions like stat or get.

The dirname is returned with the final slash always stripped

QByteArray KRemoteEncoding::encode(const QString &name) const

Converts the given name from Unicode. This function is supposed to work for dirnames, filenames or a full pathname.

QByteArray KRemoteEncoding::encode(const QUrl &url) const

Converts the given URL into its 8-bit components

const char *KRemoteEncoding::encoding() const

Returns the encoding being used.

See also setEncoding().

QByteArray KRemoteEncoding::fileName(const QUrl &url) const

Converts the given URL into 8-bit form and retrieve the filename.

void KRemoteEncoding::setEncoding(const char *name)

Sets the encoding being used. This function does not change the global configuration.

Pass a null pointer in name to revert to the standard encoding.

See also encoding().