Raa*_*thi 4 postgresql encoding utf-8 character-encoding
SELECT在对该表上的特定行执行查询时获取以下异常
ERROR: character with byte sequence 0xc2 0x81 in encoding "UTF8" has no equivalent in encoding "WIN1252"
Run Code Online (Sandbox Code Playgroud)
之一的column该行中包含已编码的UTF-8,并插入到它的日文字符.
这个问题有什么问题吗?
Ada*_*dam 11
您应该知道数据库中使用了什么编码.
SHOW server_encoding;
Run Code Online (Sandbox Code Playgroud)
连接到数据库时,您可以指定客户端应使用的编码:
SET client_encoding TO 'UTF8';
Run Code Online (Sandbox Code Playgroud)
如果服务器和客户端编码不同,则数据库驱动程序尝试在这两种编码之间进行转换 当它找不到等效字符时,抛出错误.
因此,服务器编码和客户端编码应该相同,以避免像您这样的问题.
要解决您的问题:
client_encoding为UTF8为了避免将来出现此问题,请记住client_encoding在连接到数据库时设置为正确的值.
查看支持的字符集文档.
对我来说,我从 csv 文件导入数据,我需要连接到数据库,然后将客户端编码从 更改WIN1252为UTF8,然后从 csv 文件导入数据:
psql -h localhost -p 5432 -d timetrex -U postgres;// 连接到数据库set client_encoding to UTF8;show client_encoding;// 该命令将显示当前的编码COPY users FROM 'D:/Downloads/users_dump.csv' (format CSV , header true, DELIMITER ',' ,ENCODING 'UTF8') ;// 从 csv 文件复制数据| 归档时间: |
|
| 查看次数: |
11304 次 |
| 最近记录: |