我正在使用Postgres数据库,该数据库以SQL ASCII
编码。
使用node.js,使用pg package,我正在请求一些可能包含重音的行。
这里是代码:
<html>
<meta charset="UTF-8">
<body>1 all�e Carl Faberg�</body></html>
对我而言,似乎问题来自Node.js,但我不知道我有什么解决方案。
您知道我该如何解决这个问题? 谢谢
答案 0 :(得分:1)
您不应该使用SQL_ASCII数据库编码,因为PostgreSQL不关心编码,也不会将字符串转换为正确的客户端编码。
使用SQL_ASCII,将字符转换为正确的编码(因为您使用Javascript可能是UTF-16)的负担取决于应用程序,因此您必须自己编写转换,可能使用Buffer
首先,您必须找出实际存储数据库中字符的编码。您可以通过将字符串转换为bytea
来找出存储在数据库中的字节,如下所示:
test=> SELECT 'allée Carl Fabergé'::bytea;
┌────────────────────────────────────────────┐
│ bytea │
├────────────────────────────────────────────┤
│ \x616c6cc3a965204361726c20466162657267c3a9 │
└────────────────────────────────────────────┘
(1 row)