我用CakePHP编写了一个应用程序。 我设置所有使用UTF-8编码(数据库表,database.php中的数据库连接等),现在我想知道在发送之前是否应该将每个文本字符串编码为UTF-8(使用utf8_encode
)它到数据库或它是没有必要的。CakePHP UTF-8需要直接编码吗?
谢谢。
我用CakePHP编写了一个应用程序。 我设置所有使用UTF-8编码(数据库表,database.php中的数据库连接等),现在我想知道在发送之前是否应该将每个文本字符串编码为UTF-8(使用utf8_encode
)它到数据库或它是没有必要的。CakePHP UTF-8需要直接编码吗?
谢谢。
这没有必要。
指定与utf8的数据库连接将为您处理复杂问题。 (查看评论)
请在the manual看看utf8_encode
实际上做了什么。它将 ISO-8859-1编码文本转换为UTF-8编码文本。是的,这个功能是一个可怕的名字。如果您的文本未在ISO-8859-1中编码,则不需要此功能。如果你的文本已经在UTF-8中,你不需要这个功能。简而言之,如果你从一开始就将所有东西都设置为UTF-8,那么它已经是UTF-8了,你不需要做其他任何事情。
它应该是连接PHP与MySQL数据库的问题。您可以尝试通过确保您的数据库服务器默认使用utf-8编码连接来解决此问题。
你可以强迫你的CakePHP程序通过指定编码选项连接与UTF8编码到mysql的 app/config/database.php
:
var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database' => 'cakephp',
'prefix' => '',
'encoding' => 'utf8'
);
您还可以强制MySQL使用UTF8与查询:
SET NAMES'utf8'
让我知道你是否可以解决问题。 谢谢
这一切都已经确定。这不是我的问题。 ;) – entropid
然后不需要做任何事情。 –
这没有必要。 –
@MozMorris谢谢,但为什么? MySQL会自动执行它吗? – entropid
不自动。但是通过指定数据库和连接为utf8,你将是安全的。 –