Я работаю над программным обеспечением, которое использует Delphi и Postgres 9.0,
оригинальный разработчик выбрал кодировку базы данных как SQL_ASCII ...
поэтому мы изменили кодировку на UTF-8 для нашей базы данных.
мы начали получать эту ошибку после
Нажатие одного из флажков
(форма заполняется из базы данных)
запрос, где появляется ошибка:
'выбрать * из дневника, где опрос в (' 2005407 ')';
но эта ошибка возникает только для нескольких флажков, а не для ВСЕХ
Изменение является прямым, но у нас есть большой объем исторических данных, которые нам придется повторно сохранить во вновь созданной UTF-8 базе данных ... поэтому я выполнил шаги, которые нашел в сети и stackoverflow также
- Дамп базы данных как e- UTF-8
SQL_Ascii_backup.backup
Используйте iconv для преобразования SQL_ASCII в UTF-8
"C:\Program Files\GnuWin32\bin\iconv.exe" -f ISO8859-1 -t UTF-8 C:\SQL_Ascii_backup.backup>UTF_Backup.backup
3.Создать новую базу данных с кодировкой UTF-8 и заново сохранить резервную копию UTF_Backup.backup
Но когда я пытаюсь восстановить его, я получаю его ошибку
Затем я попытался сбросить исходную SQL_ASCII базу данных в виде простого SQL_Ascii_.sql
файла.
и затем снова я использовал iconv, чтобы изменить кодировку .. и затем восстановить
>"C:\Program Files\PostgreSQL\9.0\bin\psql.exe"-h localhost -p 5434 -d myDB -U myDB_admin -f C:\converted_utf8.sql
это восстанавливается правильно, но я все еще получаю ошибку.
'символ 0xc286 кодировки "UTF-8" не имеет эквивалента в "WIN1252";