node-postgres UTF 密码错误

node-postgres UTF password bug

我正在使用 https://github.com/brianc/node-postgres pg 模块。显然我不能使用 Unicode 密码来连接数据库。从相同的位置 psql 使用连接参数就可以了。对于 Node.js,它给出 ne 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 上的文档。请帮忙解答一下。

谢谢!

/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

接下来

The default encoding used by the crypto module is usually 'binary' from another answer

修复了我的utf密码问题。所以我创建了 PR - 也许很快它就不再是问题了。

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