Bläddra i källkod

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.
Shannon Booth 11 månader sedan
förälder
incheckning
0b864bef60
1 ändrade filer med 1 tillägg och 10 borttagningar
  1. 1 10
      Userland/Libraries/LibTextCodec/Decoder.cpp

+ 1 - 10
Userland/Libraries/LibTextCodec/Decoder.cpp

@@ -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)