356

Ошибка кодировки на сервере

1 ответ

Сайт написан на 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)

ck447 0
04.04.2023 20:05
Да, можно изменить используемую кодировку с ASCII на UTF-8 в Python. Для этого можно использовать функцию sys.setdefaultencoding() в Python 2.x. Однако, в Python 3.x эта функция больше не поддерживается.

В вашем случае, вам нужно установить правильную локальную переменную окружения. Например, чтобы установить 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 в качестве кодировки для хранения данных.

Похожие вопросы

Запрос к БД INSERT

Добрый вечер, столкнулся с проблемой. Flask. Использую mysqlconnector Вот такой кусок кода: cursor.execute("INSERT INTO `users`( `sUserLogin`, `sUserMail`, `sUserPassword`, `iUserStatus`, `sUserPhone`, `sFirstName`, `sLastName`) VALUES (%s,%s,%s,%s,%s,%s,%s)",(user["login"],...

Через Crontab не работает скрипт на питоне

Есть скрипт, проверяющий, онлайн ли человек в ВК. При сценарии Python в Crontab ничего не происходит, файл не записывается, на почту тоже 0 писем. Проблема не только в модулях, он банально в файл даже записать ничего не может  Код.py import...
Polite Cygnus
93

Блокировка добавления изображений через админ панель

Здравствуйте! Сталкнулся с проблемой того, что хостинг блокирует добавление картинки в папку сервера через админ панель сайта.  При попытке загрузить картинку, вылетает ошибка о блокировки, если работать через локальный сервер все отлично добавляется: Сайт...
Ваш баланс 10 ТК
1 ТК = 1 ₽
О том, как заработать и потратить Таймкарму, читайте в этой статье
Чтобы потратить Таймкарму, зарегистрируйтесь на нашем сайте
С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
С помощью соцсетей
У меня уже есть аккаунт Войти
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email вашего аккаунта
Войти в Комьюнити
Регистрация в Комьюнити
Восстановление пароля