mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-02-18 05:34:34 +00:00
LibTextCodec: Implement UTF8Decoder::to_utf8 using AK::String
String::from_utf8_with_replacement_character is equivalent to https://encoding.spec.whatwg.org/#utf-8-decode from the encoding spec, so we can simply call through to it.
This commit is contained in:
@@ -366,16 +366,7 @@ bool UTF8Decoder::validate(StringView input)
|
||||
|
||||
ErrorOr<String> UTF8Decoder::to_utf8(StringView input)
|
||||
{
|
||||
// Discard the BOM
|
||||
auto bomless_input = input;
|
||||
if (auto bytes = input.bytes(); bytes.size() >= 3 && bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) {
|
||||
bomless_input = input.substring_view(3);
|
||||
}
|
||||
|
||||
if (Utf8View(bomless_input).validate())
|
||||
return String::from_utf8_without_validation(bomless_input.bytes());
|
||||
|
||||
return Decoder::to_utf8(bomless_input);
|
||||
return String::from_utf8_with_replacement_character(input);
|
||||
}
|
||||
|
||||
static Utf16View as_utf16(StringView view, AK::Endianness endianness)
|
||||
|
||||
Reference in New Issue
Block a user