在PostgreSQL中使用latin1编码将UTF-8 varchar转换为bytea

时间:2012-01-13 08:17:45

标签: postgresql

我正在将一个专有(和旧的)校验和算法从MySQL过程移植到PostgreSQL 8.4。

整个数据库是UTF-8,但是对于这个算法,我需要将UTF-8输入转换为带有latin1编码的bytea值。在MySQL中,变量可以是不同的编码,并且即时执行转换。 PostgreSQL中是否有任何函数可以进行这样的转换?

我看到的唯一选择是编写一个自定义的utf8_convert()C函数,该函数返回一个bytea值并使用内部的iconv()将输入转换为latin1。但我想避免使用这样的C函数。

1 个答案:

答案 0 :(得分:2)

来自String Functions and Operators

convert_to(text_in_database,'LATIN1')

但是你必须确保文本可以用Latin1编码 - 否则你会得到一个例外。