Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php JMSSerializer和UTF-8编码错误(Symfony2.4)_Php_Symfony_Utf 8 - Fatal编程技术网

Php JMSSerializer和UTF-8编码错误(Symfony2.4)

Php JMSSerializer和UTF-8编码错误(Symfony2.4),php,symfony,utf-8,Php,Symfony,Utf 8,我有一个REST api,它可以返回任务/公司/注释等。在本地主机上,无论我写的是什么任务描述或公司名称,它都可以正常工作,但我将我的应用程序放在服务器上,当我使用诸如“łźążęę”之类的符号时,会出现错误您的数据无法编码,因为它包含无效的UTF8字符。“在app/endor/jms/serializer/src/jms/serializer/JsonSerializationVisitor.php第36行 数据库和表都相同,所有配置选项都相同。如何解决此问题?我有一个类似的问题,您可以在我的

我有一个REST api,它可以返回任务/公司/注释等。在本地主机上,无论我写的是什么任务描述或公司名称,它都可以正常工作,但我将我的应用程序放在服务器上,当我使用诸如“łźążęę”之类的符号时,会出现错误
您的数据无法编码,因为它包含无效的UTF8字符。“在app/endor/jms/serializer/src/jms/serializer/JsonSerializationVisitor.php第36行


数据库和表都相同,所有配置选项都相同。如何解决此问题?

我有一个类似的问题,您可以在我的问题中看到:

我已经设法在日志中将二进制字段转换为十六进制,但是FOSRestBundle仍然返回相同的异常


您有什么改进吗?

我找到了解决这个问题的方法,将数据库连接属性设置为使用UTF-8字符集传输数据。这就是我的
app/config/config.yml

doctrine:
    dbal:
        default_connection: default

        connections:
            default:
                driver:   %database_driver%
                dbname:   %database_name%
                user:     %database_user%
                host:     %database_host%
                password: %database_password%
                charset:  UTF8
                options:
                    1002:  "SET NAMES 'UTF8'"

我有同样的错误信息,只是在生产中。结果表明,数据库中有一行包含字符
¨
,(U+00A8),序列化程序无法处理该字符


删除字符解决了问题。

我在使用@VirtualProperty方法时遇到了相同的错误,该方法使用substr(str,start,length)函数剪切字符串。 如果使用UTF8,则此函数是错误的选择。相反,请使用mb\u substr