From 43a8c4c91fc22fb6bea07846f144072b0d047f4e Mon Sep 17 00:00:00 2001 From: Jacob Chapman <7908073+chapmanjacobd@users.noreply.github.com> Date: Mon, 31 Oct 2022 17:53:53 -0500 Subject: [PATCH] Update db.py --- sqlite_utils/db.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/sqlite_utils/db.py b/sqlite_utils/db.py index fe5d84f..2ef0f03 100644 --- a/sqlite_utils/db.py +++ b/sqlite_utils/db.py @@ -485,9 +485,18 @@ class Database: else: return self.conn.execute(sql) except UnicodeEncodeError: - sql = sql.encode('utf-8', 'surrogatepass').decode('utf-8') + sql = sql.encode("utf-8", "surrogatepass").decode("utf-8") if parameters is not None: - parameters = parameters.encode('utf-8', 'surrogatepass').decode('utf-8') + if isinstance(parameters, dict): + parameters = { + k: v.encode("utf-8", "surrogateescape").decode("utf-8") + for k, v in parameters.items() + } + elif isinstance(parameters, list): + parameters = [ + p.encode("utf-8", "surrogateescape").decode("utf-8") + for p in parameters + ] return self.execute(sql, parameters) def executescript(self, sql: str) -> sqlite3.Cursor: