ошибка пароля node-postgres UTF

Я использую модуль https://github.com/brianc/node-postgres pg. По-видимому, я не могу использовать пароль Unicode для подключения к базе данных. Из того же места psql с параметрами соединения идет нормально. С Node.js это дает пе password authentication failed for user. Когда я проверяю console.log(), я вижу именно то, что ожидаю. Если я меняю пароль на ASCII как в БД, так и в строке подключения, все работает хорошо. Но мне нужно использовать старый пароль Unicode...

Я попробовал оба https://github.com/brianc/node-postgres/wiki/Client

new pg.Client({...password: Código

и

conString = "postgres://...Código@"

Я знаю, что и ODBC (Driver={PostgreSQL UNICODE};), и JDBC (;Unicode=true) поддерживают UTF в строке подключения. Я ничего не нашел в поддержке модуля Node.js pg UTF.

Пожалуйста помоги.

Я увидел http://www.connectionstrings.com/postgresql/ и прочитал документацию по https://github.com/brianc/node-postgres. Помогите пожалуйста с вопросом.

Спасибо!


person Vao Tsun    schedule 26.11.2015    source источник
comment
будет ли полезен github.com/bnoordhuis/node-iconv?..   -  person Vao Tsun    schedule 26.11.2015
comment
@brianc, не мог бы ты взглянуть?..   -  person Vao Tsun    schedule 04.12.2016


Ответы (1)


Нашел ошибку в /lib/client.js: crypto.createHash('md5').update('утфUTF').digest('hex') выдает:

a77b17c858d93bf7455211a629df45f8

в то время как правильный md5 будет:

a=#select md5('утфutf');
               md5
----------------------------------
 6dbfa2a80226f7629e537268b0650898
(1 row)

Итак, crypto.createHash('md5').update('утфutf', 'utf-8').digest('hex') дает

6dbfa2a80226f7629e537268b0650898

После этого

Кодировка по умолчанию, используемая модулем шифрования, обычно является «двоичной» из другого ответа.

Исправлена ​​моя проблема с паролем utf. Так что я создал PR - может быть, скоро это перестанет быть вопросом.

https://github.com/brianc/node-postgres/pull/1178

person Vao Tsun    schedule 06.12.2016