我有一個應用程序,我在嘗試Doctrine2。我有一個數據庫配置了類型InnoDB和排序規則utf8_unicode_ci.I然後有一個簡單的表,有兩列:id(integer)和name(string)。Utf8,瑞典語字符,Doctrine,Mysql和Json序列化
我用phpmyadmin進入行插入表,然後我用下面的代碼從數據庫中讀取的信息:
$serializer = JMS\Serializer\SerializerBuilder::create()->build();
$county = $entityManager->find('County', 1);
$jsonContent = $serializer->serialize($county, 'json');
我使用的串行爲http://jmsyst.com/libs/serializer。
我的實體文件爲縣是這樣的:
<?php
use Doctrine\ORM\Mapping as ORM;
// src/County.php
/** @ORM\Entity **/
class County
{
/** @ORM\Id @ORM\Column(type="integer") **/
protected $id;
/** @ORM\Column(type="string") * */
protected $name;
public function getId()
{
return $this->id;
}
public function setId($id)
{
$this->id = $id;
}
public function getName()
{
return $this->name;
}
public function setName($name)
{
$this->name = $name;
}
}
當我試圖在沒有瑞典字符一切正常連續運行它,但如果我通過phpmyadmin進入瑞典字符「a」並嘗試讀取該行,我得到以下異常:
Fatal error: Uncaught exception 'RuntimeException' with message 'Your data could not be encoded because it contains invalid UTF8 characters.' in C:\wamp\www\doctrine\vendor\jms\serializer\src\JMS\Serializer\JsonSerializationVisitor.php on line 36
任何提示我做錯了什麼?我認爲這應該工作。