我有从数据库编码字符的问题。我正在使用带有win1250编码的Postgres,但无论我放在core.php中(现在我都有这行代码):
Configure::write('App.encoding', 'iso-8859-1');
有时它会给我一些来自数据库的奇怪信件,例如ÈindsteadofČ。我能做些什么来获得正确的编码。
注意:我无法编辑或更改任何数据库。
答案 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。