2017-02-08 9 views
0

У меня есть новая установка PostgreSQL (9.6.1) с помощью установщика Big SQL и новая установка Npgsql (3.2.0) с помощью установщика .msi, но не ASCII поддержка персонажей, похоже, нарушена.Кодирование = ASCII; и Encoding = UNICODE; не работают в строке подключения Npgsql 3

Моя строка соединения:

<add name="Northwind" connectionString="Database=Northwind;Server=localhost;Port=5432;User Id=postgres;Password=123;Encoding=ASCII;" providerName="Npgsql"/> 

Я получаю исключения сообщений, как это, при чтении обратно не-ASCII символов данных:

System.Text.DecoderFallbackException : Unable to translate bytes [C3] at index 22 from specified code page to Unicode. 

Я попытался с помощью Encoding=UNICODE; вместо этого, но ни работы.

ответ

2

Возможно, у вас есть старая строка подключения Npgsql. Encoding=ASCII или Encoding=UNICODE больше не будет работать при использовании текущего (3.2.0) Npgsql для доступа к текущему (9.6.1) PostgreSQL.

Решение: просто удалите Encoding=xxx полностью и все работает!

Вам не нужно «исправлять» ваши кодировки и локации Postgres, вам не нужно пытаться найти рабочее значение Encoding для использования в строке подключения; Ngpsql 3 работает без настройки Encoding по сравнению с установками установки Postgres по умолчанию в Windows (Encoding=UTF8 | Collate=English_United Kingdom.1252 | Ctype=English_United Kingdom.1252) (для Великобритании, но я считаю, что то же самое относится и к English_United States.1252 для США и других мест). (https://github.com/npgsql/npgsql/issues/1396)

 Смежные вопросы

  • Нет связанных вопросов^_^