parent
21722702c8
commit
8e8c9b908a
|
@ -12,6 +12,7 @@ from django.core import exceptions
|
||||||
from django.core.management.base import CommandError
|
from django.core.management.base import CommandError
|
||||||
from django.db import DEFAULT_DB_ALIAS, router
|
from django.db import DEFAULT_DB_ALIAS, router
|
||||||
from django.db.models import get_models, signals
|
from django.db.models import get_models, signals
|
||||||
|
from django.utils.encoding import DEFAULT_LOCALE_ENCODING
|
||||||
from django.utils import six
|
from django.utils import six
|
||||||
from django.utils.six.moves import input
|
from django.utils.six.moves import input
|
||||||
|
|
||||||
|
@ -133,11 +134,8 @@ def get_system_username():
|
||||||
# (a very restricted chroot environment, for example).
|
# (a very restricted chroot environment, for example).
|
||||||
return ''
|
return ''
|
||||||
if not six.PY3:
|
if not six.PY3:
|
||||||
default_locale = locale.getdefaultlocale()[1]
|
|
||||||
if not default_locale:
|
|
||||||
return ''
|
|
||||||
try:
|
try:
|
||||||
result = result.decode(default_locale)
|
result = result.decode(DEFAULT_LOCALE_ENCODING)
|
||||||
except UnicodeDecodeError:
|
except UnicodeDecodeError:
|
||||||
# UnicodeDecodeError - preventive treatment for non-latin Windows.
|
# UnicodeDecodeError - preventive treatment for non-latin Windows.
|
||||||
return ''
|
return ''
|
||||||
|
|
|
@ -236,11 +236,17 @@ def filepath_to_uri(path):
|
||||||
# some flexibility for hardcoding separators.
|
# some flexibility for hardcoding separators.
|
||||||
return quote(force_bytes(path.replace("\\", "/")), safe=b"/~!*()'")
|
return quote(force_bytes(path.replace("\\", "/")), safe=b"/~!*()'")
|
||||||
|
|
||||||
# The encoding of the default system locale but falls back to the
|
def get_system_encoding():
|
||||||
# given fallback encoding if the encoding is unsupported by python or could
|
"""
|
||||||
# not be determined. See tickets #10335 and #5846
|
The encoding of the default system locale but falls back to the given
|
||||||
|
fallback encoding if the encoding is unsupported by python or could
|
||||||
|
not be determined. See tickets #10335 and #5846
|
||||||
|
"""
|
||||||
try:
|
try:
|
||||||
DEFAULT_LOCALE_ENCODING = locale.getdefaultlocale()[1] or 'ascii'
|
encoding = locale.getdefaultlocale()[1] or 'ascii'
|
||||||
codecs.lookup(DEFAULT_LOCALE_ENCODING)
|
codecs.lookup(encoding)
|
||||||
except:
|
except Exception:
|
||||||
DEFAULT_LOCALE_ENCODING = 'ascii'
|
encoding = 'ascii'
|
||||||
|
return encoding
|
||||||
|
|
||||||
|
DEFAULT_LOCALE_ENCODING = get_system_encoding()
|
||||||
|
|
Loading…
Reference in New Issue