我正在使用一个使用数据库但使用字符串的遗留大泥球。每次应用程序读取或写入数据库时,它都会手动解码或编码,并将编码的字符串存储在数据库中。latin1
utf8
utf8
latin1
编写时,它会执行以下操作:
$value = utf8_encode("Iñtërnâtiônàlizætiøn")
mysql_query("INSERT INTO table (key) VALUES ($value)")
所以存储的值是Iñtërnâtiônà lizætiøn
阅读时:
$result = mysql_query("SELECT key FROM table")
$value = utf8_decode($result) // Wich results on "Iñtërnâtiônàlizætiøn" again
如何使用 Doctrine 2 管理同一个数据库并尊重这种奇怪的行为?
以下代码在 my 中使用时将按预期工作Entity
,但我正在寻找更清洁和干燥的解决方案。
public function setKey($value)
{
$this->key = utf8_encode($value);
}
public function getKey()
{
return utf8_decode($this->key);
}