Postgresql 编码字符0xe28093“;UTF8";在“中没有等效项”;拉丁语1“;
在Latin1 Postgres 9.1.3中插入一些数据时,我得到一个错误: 编码“UTF8”的字符0xe28093在“LATIN1”中没有等价物 Grails应用程序正在插入数据。我尝试了以下方法,但没有成功:Postgresql 编码字符0xe28093“;UTF8";在“中没有等效项”;拉丁语1“;,postgresql,grails,encoding,character-encoding,Postgresql,Grails,Encoding,Character Encoding,在Latin1 Postgres 9.1.3中插入一些数据时,我得到一个错误: 编码“UTF8”的字符0xe28093在“LATIN1”中没有等价物 Grails应用程序正在插入数据。我尝试了以下方法,但没有成功: hibernate{connection.characterEncoding='utf8'} jdbc conn字符串中的charSet=LATIN1 hibernate{connection.charSet='LATIN1'} 数据库是通过以下方式创建的: CREATE DAT
hibernate{connection.characterEncoding='utf8'}
- jdbc conn字符串中的charSet=LATIN1
hibernate{connection.charSet='LATIN1'}
CREATE DATABASE mydb
WITH OWNER = postgres
ENCODING = 'LATIN1'
TABLESPACE = pg_default
LC_COLLATE = 'C'
LC_CTYPE = 'C'
CONNECTION LIMIT = -1;
有什么想法吗?提前感谢您。这是的UTF-8编码。拉丁字符集中最接近的等效字符是字符代码150(0x96)。这是拉丁字符的UTF-8编码。拉丁1字符集中最接近的等效字符是字符代码150(0x96)。如果我理解正确,您的数据库是用编码“拉丁1”创建的。创建数据库后,无法更改此编码。您唯一可以更改的是客户端和PostgreSQL服务器之间的编码,正如您的要点所示。然后,PostgreSQL服务器尝试在客户端编码和数据库编码之间进行转换 如果客户端传输无法转换为DB编码的数据,则此过程当然会失败。在您的情况下,Unicode代码点2013无法翻译为拉丁语1
这意味着您必须清除所有进入数据库的数据。摆弄客户机编码是没有帮助的。如果我理解正确,您的数据库是用编码“LATIN1”创建的。创建数据库后,无法更改此编码。您唯一可以更改的是客户端和PostgreSQL服务器之间的编码,正如您的要点所示。然后,PostgreSQL服务器尝试在客户端编码和数据库编码之间进行转换 如果客户端传输无法转换为DB编码的数据,则此过程当然会失败。在您的情况下,Unicode代码点2013无法翻译为拉丁语1
这意味着您必须清除所有进入数据库的数据。摆弄客户机编码也无济于事。谢谢您的链接。非常有用。谢谢你的链接。非常有用。谢谢A.H.。请看一下创建ddl。我想知道LC_-COLLATE或LC_-CTYPE对不同的值是否有帮助。LC_-COLLATE用于特定语言的排序,LC_-CTYPE用于“什么代码点是数字,什么字符,…”——所以对你没有帮助,因为编码是覆盖所有值的大伞。@paulosuzart:噢,在你摆弄LC_-COLLATE和LC_-CTYPE之前,一定要弄清楚其中的含义。有很多,也有一些微妙的。谢谢你A.H.。请看一下创建ddl。我想知道LC_-COLLATE或LC_-CTYPE对不同的值是否有帮助。LC_-COLLATE用于特定语言的排序,LC_-CTYPE用于“什么代码点是数字,什么字符,…”——所以对你没有帮助,因为编码是覆盖所有值的大伞。@paulosuzart:噢,在你摆弄LC_-COLLATE和LC_-CTYPE之前,一定要弄清楚其中的含义。有很多,也有一些微妙的。