Итак, я искал установить трассировка на моем сервере debian с PostgreSQL. Я настраиваю все согласно документации, но при попытке запустить trac-admin /path initenv
Я получаю эту ошибку для кодировки базы данных:
DataError: character 0xe282ac of encoding "UTF8" has no equivalent in "LATIN1"
При дальнейшем чтении (и после того, как я увидел, что все мои базы данных настроены на кодировку "LATIN1"), мне кажется, что мне нужно перейти на UTF8, но как я могу это сделать?
Если я создам свою базу данных так:
createdb -U user -O user -E UTF8 trac
Я получил:
createdb: database creation failed: ERROR: encoding UTF8 does not match server's local en_GB
DETAIL: The server's LC_CTYPE setting requires encoding LATIN1.
Похоже, это должно быть легко исправить, изменив кодировку, но после небольшого поиска я понятия не имею, как это сделать!
Кажется, у вас в кластере базы данных есть локаль LATIN1. Когда вы настраиваете кластер, вы можете добавить --locale
параметр - см. этот документ для получения дополнительной информации. Ваши базы данных будут созданы в соответствии с этим параметром.
Некоторые параметры локали вы можете установить в файле конфигурации. Например мои настройки из /etc/postgresql/9.1/main/postgresql.conf
:
lc_messages = 'cs_CZ.UTF-8' # locale for system error message strings
lc_monetary = 'cs_CZ.UTF-8' # locale for monetary formatting
lc_numeric = 'cs_CZ.UTF-8' # locale for number formatting
lc_time = 'cs_CZ.UTF-8'