Symfony 2在数据库中插入西里尔文

时间:2014-07-15 17:54:43

标签: php postgresql symfony

最近,当我尝试在数据库中插入一些俄语西里尔文本时,我遇到了一些问题。我在框架symfony2上,我使用的是Doctrine ORM和一个Nginx Web服务器。该数据库是PostgreSql。有时当我尝试在列中插入俄语文本时会出现问题,我收到此消息的500内部服务器错误:

SQLSTATE[22021]: Character not in repertoire: 7 ERREUR: invalid byte sequence for encoding « UTF8 » : 0xd1

最奇怪的是发生在一个列而不是另一个具有相同字符串...我的php文件和数据库在UTF8中正确编码。

是否有人遇到过同样的问题并实现解决?非常感谢您的帮助。

来自psql的\ l请求显示编码UTF8和Collat​​e和Ctype fr_FR.UTF-8

server_encoding UTF8

client_encoding UTF8

1 个答案:

答案 0 :(得分:0)

基于显示的内容,如果该错误仅在一个列中具有相同的另一个字符串,那么我认为您需要确保提供错误的列具有正确的排序规则,因为问题肯定与由Character not in repertoire: 7 ERREUR: invalid byte sequence for encoding « UTF8 » : 0xd1引起的Ctype fr_FR.UTF-8因为fr_FR的字节范围与西里尔字母不同。

我在mysql数据库中管理西里尔字符,所有表格/校对用 utf-8 unicode (或一般)编码。

希望这有帮助。