From 4e2cec88e46a3fb1d0148013ebf8d884cb12742c Mon Sep 17 00:00:00 2001 From: Yuki Yugui Sonoda Date: Sun, 7 Jul 2024 15:44:47 +0900 Subject: [PATCH] Fixes a mojibake bug in web authenticators in some multibyte locales Fixes #3345 Make the implementation of the character convertion consistent with their consumers in the web app. --- src/Core/Utilities/AppHelpers.cs | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/Core/Utilities/AppHelpers.cs b/src/Core/Utilities/AppHelpers.cs index b248bd8dc..b1f32a226 100644 --- a/src/Core/Utilities/AppHelpers.cs +++ b/src/Core/Utilities/AppHelpers.cs @@ -515,14 +515,8 @@ namespace Bit.App.Utilities public static string EncodeDataParameter(object obj) { - string EncodeMultibyte(Match match) - { - return Convert.ToChar(Convert.ToUInt32($"0x{match.Groups[1].Value}", 16)).ToString(); - } - - var escaped = Uri.EscapeDataString(JsonConvert.SerializeObject(obj)); - var multiByteEscaped = Regex.Replace(escaped, "%([0-9A-F]{2})", EncodeMultibyte); - return WebUtility.UrlEncode(Convert.ToBase64String(Encoding.UTF8.GetBytes(multiByteEscaped))); + var json = JsonConvert.SerializeObject(obj); + return WebUtility.UrlEncode(Convert.ToBase64String(Encoding.UTF8.GetBytes(json))); } public static async Task LogOutAsync(string userId, bool userInitiated = false)