postgresql - 在插入 PG::Error 时,Postgres错误: 错误:编码"UTF8"的字节序列无效: 0 xe073

  显示原文与译文双语对照的内容
0 0

我将数据从mysql插入到postgres时出现以下错误。


PG::Error: ERROR: invalid byte sequence for encoding"UTF8": 0xe073
: INSERT INTO"places" ("accent_city","city","country","created_at","latitude","longitude","region","updated_at") VALUES ($1, $2, $3, $4, $5, $6, $7, $8) RETURNING"id"

我想将这个文件 worldcitiespop.txt 插入到我的PG数据库作为一个rake任务


namespace :places_db do
 desc"save cities in database"
 task save_places: :environment do
 File.open("lib/city_name/worldcitiespop.txt","r").each_line do |row|
 row = row.force_encoding('ISO-8859-1').split(',')
 Place.create(country: row[0], city: row[1], accent_city: row[2], region: row[3], latitude: row[5], longitude: row[6])
 end 
 end
end

时间: 原作者:

0 0

由于文件使用 ISO-8859-1 编码,因此最简单的方法是在导入前通过发出以下SQL查询来执行转换:


SET client_encoding=latin1;

要返回到导入后的前一个编码:


SET client_encoding=default;

这里设置仅影响当前会话。

...