gpt4 book ai didi

sql - 将 Postgresql 数据库从包含混合编码类型的 SQL_ASCII 转换为 UTF-8

转载 作者:太空狗 更新时间:2023-10-30 01:55:43 25 4
gpt4 key购买 nike

我有一个 postgresql 数据库,我想将其转换为 UTF-8。

问题是它目前是 SQL_ASCII,所以还没有对其输入进行任何类型的编码转换,因此最终在表中得到了混合编码类型的数据。一行可能包含编码为 UTF-8 的值,另一行可能包含 ISO-8859-x 或 Windows-125x 等。

这使得执行数据库转储并将其转换为 UTF-8 以将其导入新的 UTF-8 数据库变得困难。如果数据都是一种编码类型,我可以通过 iconv 运行转储文件,但我认为这种方法在这里行不通。

问题是否从根本上归结为了解每个数据的编码方式?在这里,在未知的地方,它能被计算出来,甚至被猜到吗?理想情况下,我喜欢一个脚本,它可以获取一个文件,任何文件,并吐出有效的 UTF-8。

最佳答案

正是 Encoding::FixLatin 的问题是为了解决*而写的。

如果您安装了 Perl 模块,那么您还将获得 fix_latin 命令行实用程序,您可以像这样使用它:

pg_restore -O dump_file | fix_latin | psql -d database

读取“Limitations” ' 文档部分以了解其工作原理。

[*] 注意我假设当你说 ISO-8859-x 时你指的是 ISO-8859-1 而当你说 CP125x 时你指的是 CP1252 - 因为 ASCII、UTF-8、Latin-1 和WinLatin-1 是一个常见的例子。但是,如果你真的混合了东西方编码,那么抱歉,你完蛋了:-(

关于sql - 将 Postgresql 数据库从包含混合编码类型的 SQL_ASCII 转换为 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4079956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com