psql_ascii_2_utf8
Convert PostgreSQL database from SQL_ASCII to UTF8
Login to your server as “root” and install the 'Recode' tool. In Linux Debian you do this by typing:
apt-get install recode
Then switch to the “postgres” account:
su postgres
Now start by creating a dump of your SQL_ASCII database:
pg_dump SQL_ASCII_database_name > SQL_ASCII_database_dump.sql
Next check content of your file by typing:
file SQL_ASCII_database_dump.sql
You should get the following output:
SQL_ASCII_database_dump.sql: ISO-8859 text
Then you convert your ISO-8859 or CP1250 file to UTF8 by typing these two commands:
cat SQL_ASCII_database_dump.sql | recode iso-8859-1..u8 > UTF8_database_dump.sql iconv -f CP1250 -t UTF-8 -c <Non-ISO-extended-ASCII-FILE.sql >UTF8_database_dump.sql
Check the result by typing:
file UTF8_database_dump.sql
You should now get the following output:
UTF8_database_dump.sql: UTF-8 Unicode text
Now open the new UTF8_database_dump.sql file with your favourite editor and change the line:
SET client_encoding = 'SQL_ASCII';
to:
SET client_encoding = 'UTF8';
Create a new database:
createdb new_UTF8_database_name
And import the UTF8_database_dump.sql
psql new_UTF8_database_name < UTF8_database_dump.sql
That's it!
psql_ascii_2_utf8.txt · Last modified: 2024/09/25 06:21 by 127.0.0.1