mirror of
https://github.com/RGBCube/serenity
synced 2025-05-30 19:18:11 +00:00

This encoding (a superset of ascii that adds in the cyrillic alphabet) is currently the third most used encoding on the web, and because cyrillic glyphs were added by Dmitrii Trifonov recently, we can now support it as well :^)
55 lines
1.1 KiB
C++
55 lines
1.1 KiB
C++
/*
|
|
* Copyright (c) 2020-2021, Andreas Kling <kling@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <AK/Forward.h>
|
|
|
|
namespace TextCodec {
|
|
|
|
class Decoder {
|
|
public:
|
|
virtual String to_utf8(const StringView&) = 0;
|
|
|
|
protected:
|
|
virtual ~Decoder() = default;
|
|
};
|
|
|
|
class UTF8Decoder final : public Decoder {
|
|
public:
|
|
virtual String to_utf8(const StringView&) override;
|
|
};
|
|
|
|
class UTF16BEDecoder final : public Decoder {
|
|
public:
|
|
virtual String to_utf8(const StringView&) override;
|
|
};
|
|
|
|
class Latin1Decoder final : public Decoder {
|
|
public:
|
|
virtual String to_utf8(const StringView&) override;
|
|
};
|
|
|
|
class Latin2Decoder final : public Decoder {
|
|
public:
|
|
virtual String to_utf8(const StringView&) override;
|
|
};
|
|
|
|
class HebrewDecoder final : public Decoder {
|
|
public:
|
|
virtual String to_utf8(const StringView&) override;
|
|
};
|
|
|
|
class CyrillicDecoder final : public Decoder {
|
|
public:
|
|
virtual String to_utf8(const StringView&) override;
|
|
};
|
|
|
|
Decoder* decoder_for(const String& encoding);
|
|
String get_standardized_encoding(const String& encoding);
|
|
bool is_standardized_encoding(const String& encoding);
|
|
|
|
}
|