Сайт написан на python на нем происходит обработка pdf файлов и проблема заключаеться в использование сервером ascii таблици, как стандартную кодировку файлов и код для проверки этого выдает:
getlocale: (None, None)
getdefaultlocale(): (None, None)
fs_encoding: ascii
sys default encoding: utf-8
python version: 3.6.9 (default, Mar 10 2023, 16:46:00) [GCC 8.4.0] ANSI_X3.4-1968
код для проверки:
def view_locale(request):
preferred_encoding = locale.getpreferredencoding()
#if sys.getdefaultencoding() != preferred_encoding:
# reload(sys)
# sys.setdefaultencoding(preferred_encoding)
loc_info = "getlocale: " + str(locale.getlocale()) + \
"<br/>getdefaultlocale(): " + str(locale.getdefaultlocale()) + \
"<br/>fs_encoding: " + str(sys.getfilesystemencoding()) + \
"<br/>sys default encoding: " + str(sys.getdefaultencoding()) + \
"<br/>python version: " + sys.version + ' ' + locale.getpreferredencoding()
return HttpResponse(loc_info)
можно ли расширить используемую ascii таблицу или сменить ее на utf-8?
Ответы (1)
В вашем случае, вам нужно установить правильную локальную переменную окружения. Например, чтобы установить UTF-8 в качестве кодировки по умолчанию, вы можете добавить следующий код в начало вашего скрипта Python:
import locale
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
Этот код устанавливает локальную переменную окружения LC_ALL для языка en_US и кодировки UTF-8.
Если это не работает, вам может потребоваться установить кодировку при чтении или записи файлов с помощью функций open() или codecs.open(), указав кодировку utf-8 в качестве аргумента:
with open(filename, 'r', encoding='utf-8') as f:
# process the file
Также, проверьте, что ваша база данных использует UTF-8 в качестве кодировки для хранения данных.