我不应该是第一个需要从Windows上安装的PostgreSQL数据库中导出数据,并使用Win1252代码带有UTF-8代码的数据库(在我的情况下,在Linux Server上)。
。不足以将传输文件转换为UTF-8,因为Win1252的字符(左double Quote,右double Quote,single Quote and Dash)将在您的数据库中具有怪异的值。 p>
根据我的经验,我必须按原样导入数据,然后使用该函数执行更新以正确重写UTF-8字符的数据。
以下代码示例是:1-转换为HTML字符; 2-转换为单个字符。
HTML (https://gist.github.com/rafaelbernard/1029869):
-- DROP FUNCTION substitui_win1252_html(texto);
CREATE OR REPLACE FUNCTION substitui_win1252_html(texto text)
RETURNS text AS
$$
BEGIN
texto := replace(replace(replace(replace(replace(texto, '', '’'), '', '“'), '', '”'), '','•'), '', '–')::text;
RETURN texto;
END;
$$
LANGUAGE plpgsql;
Simple (https://gist.github.com/rafaelbernard/1029899):
- DROP FUNCTION substitui_win1252(texto);
CREATE OR REPLACE FUNCTION substitui_win1252(texto text)
RETURNS text AS
$$
BEGIN
texto := replace(replace(replace(replace(replace(texto, '', ''''), '', '"'), '', '"'), '','•'), '', '-')::text;
RETURN texto;
END;
$$
LANGUAGE plpgsql;
不必担心您可能看到的正方形。如果您将其复制到一个好的文本编辑器,则将其实际价值。