我在doctrine2上发现了数组类型的一个问题。
在我的应用程序中,我有一些来自斯洛文尼亚的用户。这些家伙有一些奇怪的字符像"čćšž“。在序列化该值并将其存储到数据库后,就会出现问题。
在此之后,我得到如下期望:注意:取消序列化(),/Applications/MAMP/htdocs/firegames.at/vendor/doctrine-dbal/lib/Doctrine/DBAL/Types/ArrayType.php第46行中的function.unserialize:偏移量为456字节的错误
因此,我发现序列化sting中的以下内容触发了期望:s:7:"Urani?"
但它应该是天王星ć。我尝试将字符串转换为utf8,但也失败了。字符不能被编码!
如果我换了它就可以了?直接使用ć,它就像预期的那样工作。同样奇怪的是,charž没有问题。这是唯一起作用的。
有谁想办法解决这个问题吗?
发布于 2012-10-03 23:52:32
您需要做的是告诉DBAL在连接到DB时执行“设置名称utf8”。这是通过将charset='utf8'参数传递给配置来完成的。您可能需要阅读文档,在这里您会发现只有在PDO MySQL和OCI (甲骨文)中才能做到这一点,但我假设您使用的是MySQL。
此外,您是否使用CHARACTER SET utf8 COLLATE utf8_slovenian_ci创建表单元格?
https://stackoverflow.com/questions/12671146
复制相似问题