小编Jam*_*own的帖子

Postgresql 和 UTF8 到 Latin1 的转换?

我们有一个 Postgresql 数据库,其中数据在 Latin1 中。显然有人将一些 UTF8 编码的数据加载到其中,因为当我从某些列中选择数据时,我得到如下内容:

SELECT symptoms from client
- -
"huvudvärke"
- -
Run Code Online (Sandbox Code Playgroud)

其中“ä”应该是“ä”。我可以用替换来处理它,即:

UPDATE client SET symptoms=replace(symptoms, 'ä', 'ä');
Run Code Online (Sandbox Code Playgroud)

我尝试了几个我找到的解决方案,比如使用convert和 ,convert_to但这使数据看起来像"huvudv\303\244rke".

我的问题有现有的解决方案吗?

编辑:

SELECT symptoms, symptoms::bytea from client
- -
"huvudvärke";"huvudv\303\203\302\244rke" 
- -
Run Code Online (Sandbox Code Playgroud)

在上面的 UPDATE 之后,查询症状::bytea 输出:

SELECT symptoms, symptoms::bytea from client
- -
"huvudvärke";"huvudv\303\244rke" 
- -
Run Code Online (Sandbox Code Playgroud)

编辑2:

select version();
"PostgreSQL 9.2.9, compiled by Visual C++ build 1600, 64-bit"

show client_encoding; --I'm using pgAdmin III 1.18.1
"UNICODE"

show server_encoding;
"UTF8" …
Run Code Online (Sandbox Code Playgroud)

postgresql bytea

6
推荐指数
1
解决办法
4万
查看次数

选择所有长度为 n 的子串(n-gram)?

我怎么能选择所有的n-grams,即。使用 SQL 从字符串中提取长度为n 的子字符串?例如,3-克串的例子EXAXAM安培MPLPLE

为了更精确,我使用 PostgreSQL。

postgresql

3
推荐指数
1
解决办法
1524
查看次数

标签 统计

postgresql ×2

bytea ×1