diff --git a/AK/StringBuilder.cpp b/AK/StringBuilder.cpp index 2574d023433..8a697f8ebcb 100644 --- a/AK/StringBuilder.cpp +++ b/AK/StringBuilder.cpp @@ -148,9 +148,6 @@ void StringBuilder::append_escaped_for_json(StringView const& string) { for (auto ch : string) { switch (ch) { - case '\e': - append("\\u001B"); - break; case '\b': append("\\b"); break; @@ -167,7 +164,10 @@ void StringBuilder::append_escaped_for_json(StringView const& string) append("\\\\"); break; default: - append(ch); + if (ch >= 0 && ch <= 0x1f) + append(String::formatted("\\u{:04x}", ch)); + else + append(ch); } } } diff --git a/Kernel/KBufferBuilder.cpp b/Kernel/KBufferBuilder.cpp index a484888263e..4a2f9d1da06 100644 --- a/Kernel/KBufferBuilder.cpp +++ b/Kernel/KBufferBuilder.cpp @@ -101,9 +101,6 @@ KResult KBufferBuilder::append_escaped_for_json(const StringView& string) { for (auto ch : string) { switch (ch) { - case '\e': - TRY(append("\\u001B")); - break; case '\b': TRY(append("\\b")); break; @@ -120,7 +117,10 @@ KResult KBufferBuilder::append_escaped_for_json(const StringView& string) TRY(append("\\\\")); break; default: - TRY(append(ch)); + if (ch >= 0 && ch <= 0x1f) + TRY(append(String::formatted("\\u{:04x}", ch))); + else + TRY(append(ch)); } } return KSuccess;