【问题标题】:Novice: PostgreSQL using unicode symbols in a table新手:PostgreSQL 在表中使用 unicode 符号
【发布时间】:2015-05-10 05:01:11
【问题描述】:

我创建了表格:

jyotish=# CREATE TABLE graha(name varchar(80),english_name varchar(80),symbol char(1));

我尝试使用 UTF-8 太阳符号创建一条记录,如下所示:

jyotish=# INSERT INTO graha VALUES('surya','sun','u\2609');

我得到错误:

ERROR:  value too long for type character(1)

如何将 UTF-8 符号放在一列中?

【问题讨论】:

  • 您的 unicode 转义语法无效。事实上,没有一种语言可以这样工作(有些人可能接受 '\uXXXX' 作为 unicode 转义,但不接受 'u\XXXX')。 Postgresql 使用standard-compatible syntaxU&'\XXXX'by default

标签: postgresql unicode


【解决方案1】:

我得到错误:

错误:类型字符的值太长(1)

如果你的问题是以上那么,

您已将symbol 列中的字符长度分配给1(symbol char(1)),因此您只能插入长度为1 的值

在您的插入语句中,您尝试将'u\2609'(length=6) 插入到列symbol 这是不可能的

解决方案:ALTER TABLE graha ALTER COLUMN symbol TYPE character varying(100);


如何将 UTF-8 符号放在一列中?

使用 UTF-8 编码创建数据库

CREATE DATABASE mydb    ENCODING = 'UTF8'

或者你想改变现有的数据库然后看这个answer

【讨论】:

    猜你喜欢
    • 2018-12-11
    • 2015-04-22
    • 2015-05-08
    • 2020-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-09
    相关资源
    最近更新 更多