4

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

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

有时它会给我一些来自数据库的奇怪字母,例如 È 而不是 Č。我可以做些什么来获得正确的编码。

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

4

2 回答 2

10

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

看看这个特定的段落:

编码

指示向服务器发送 SQL 语句时要使用的字符集。对于除 DB2 之外的所有数据库,这默认为数据库的默认编码。如果您希望在 mysql/mysqli 连接中使用 UTF-8 编码,您必须使用不带连字符的 'utf8'。


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

'encoding' => 'utf8'

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

于 2012-11-27T09:22:12.127 回答
0

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

于 2012-11-24T13:06:55.557 回答