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 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 - 也许很快它就不再是问题了。