diff --git a/web/pgAdmin4.py b/web/pgAdmin4.py index b679cd6..eb75931 100644 --- a/web/pgAdmin4.py +++ b/web/pgAdmin4.py @@ -86,6 +86,12 @@ if not PGADMIN_RUNTIME: (config.APP_NAME, server_port)) sys.stdout.flush() +# To handle non-english characters set default encoding +# to utf-8 +# Referenced from https://github.com/joeyespo/grip/issues/86 +reload(sys) +sys.setdefaultencoding('utf-8') + try: app.run( host=config.DEFAULT_SERVER, diff --git a/web/pgadmin/browser/server_groups/servers/databases/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/__init__.py index 1f7fd07..34007ae 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/__init__.py @@ -11,6 +11,7 @@ import json import re +import sys from functools import wraps import pgadmin.browser.server_groups.servers as servers @@ -453,6 +454,7 @@ class DatabaseView(PGChildNodeView): ) ) try: + data['name'] = data['name'].encode(sys.getdefaultencoding()) # The below SQL will execute CREATE DDL only SQL = render_template( "/".join([self.template_path, 'create.sql']), diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/__init__.py index 377e6f7..b35d932 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/__init__.py @@ -9,6 +9,7 @@ import json import re +import sys from functools import wraps import pgadmin.browser.server_groups.servers as servers @@ -509,6 +510,7 @@ It may have been removed by another user. ) try: self.format_request_acls(data) + data['name'] = data['name'].encode(sys.getdefaultencoding()) SQL = render_template( "/".join([self.template_path, 'sql/create.sql']), data=data, conn=self.conn, _=gettext