UnicodeDecodeError: кодек 'utf-8' не может декодировать байт 0xa0 в позиции 180: недопустимый начальный байт
Я использую Django с приведенной ниже конфигурацией в settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '-',
'USER': '-',
'PASSWORD': '-',
'HOST': '-',
'PORT': '-',
'OPTIONS': {'charset': 'utf8mb4'}
}
}
Сервер базы данных работает на AWS RDS. У меня есть два экземпляра EC2, один из них может выполнять точно такой же код и получать те же данные, в то время как со второго EC2 я получаю следующую ошибку:
return self._execute_with_wrappers(sql params many=False executor=self._execute)
File "/home/ubuntu/.virtualenvs/python39/lib/python3.9/site-packages/django/db/backends/utils.py" line 75 in _execute_with_wrappers
return executor(sql params many context)
File "/home/ubuntu/.virtualenvs/python39/lib/python3.9/site-packages/django/db/backends/utils.py" line 84 in _execute
return self.cursor.execute(sql params)
File "/home/ubuntu/.virtualenvs/python39/lib/python3.9/site-packages/django/db/backends/mysql/base.py" line 73 in execute
return self.cursor.execute(query args)
File "/home/ubuntu/.virtualenvs/python39/lib/python3.9/site-packages/MySQLdb/cursors.py" line 206 in execute
res = self._query(query)
File "/home/ubuntu/.virtualenvs/python39/lib/python3.9/site-packages/MySQLdb/cursors.py" line 321 in _query
self._post_get_result()
File "/home/ubuntu/.virtualenvs/python39/lib/python3.9/site-packages/MySQLdb/cursors.py" line 355 in _post_get_result
self._rows = self._fetch_row(0)
File "/home/ubuntu/.virtualenvs/python39/lib/python3.9/site-packages/MySQLdb/cursors.py" line 328 in _fetch_row
return self._result.fetch_row(size self._fetch_type)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa0 in position 180: invalid start byte
Вышеуказанная ошибка возникает из этого фрагмента кода:
exp = MyModel.objects.all()
**for e in exp:** <-- this line is throwing the error
#do something
Версии на обоих серверах:
EC2-1st имеет:
Ubuntu 16.04.4
Django==1.11.2
mysqlclient==1.3.10
django-mysql==2.1.0
python3 --version
Python 3.5.2
mysql --version
mysql Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using EditLine wrapper
В то время как EC2-2nd является копией EC2-1st с примененными обновлениями:
Ubuntu 20.04.3
Django==3.2.6
mysqlclient==2.0.3
django-mysql==3.10.0
python3 --version
Python 3.9.5
mysql --version
mysql Ver 14.14 Distrib 5.7.35, for Linux (x86_64) using EditLine wrapper
Кроме того, мой локальный сервер прекрасно работает с этими версиями инструментов: [я импортировал базу данных RDS локально с локальной конфигурацией, близкой к конфигурации prod, чтобы попытаться отладить проблему].
Mac OS 11.5.2
Django==3.2.6
mysqlclient==2.0.3
django-mysql==3.10.0
Python 3.9.6
mysql Ver 8.0.25 for macos11.3 on x86_64 (Homebrew)
Что я должен попробовать?