cakephp从数据库编码

时间:2012-11-24 12:14:26

标签: cakephp encoding

我有从数据库编码字符的问题。我正在使用带有win1250编码的Postgres,但无论我放在core.php中(现在我都有这行代码):

Configure::write('App.encoding', 'iso-8859-1');

有时它会给我一些来自数据库的奇怪信件,例如ÈindsteadofČ。我能做些什么来获得正确的编码。

注意:我无法编辑或更改任何数据库。

2 个答案:

答案 0 :(得分:9)

我认为您需要做的就是在数据库连接配置中声明正确的encoding选项,如http://book.cakephp.org/2.0/en/development/configuration.html#database-configuration所述(滚动一下)。

看看这个特别的段落:

  

<强>编码

     
    

表示将SQL语句发送到服务器时要使用的字符集。这默认为DB2以外的所有数据库的数据库缺省编码。如果您希望将UTF-8编码与mysql / mysqli连接一起使用,则必须使用不带连字符的“utf8”。

  


我在之前的项目中遇到了同样的问题(使用法语和西班牙语名称),我只需要在$default配置文件的app/Config/database.php连接中添加以下内容:

'encoding' => 'utf8'

也许您需要utf8连接或您提到的iso-8859-1

答案 1 :(得分:0)

win1250编码类似于iso-8859- 2 (请参阅http://en.wikipedia.org/wiki/Windows-1250),因此您可能需要尝试使用而不是iso-8859-1。