Unicode CakePHP UTF-8需要直接编码吗?

Unicode CakePHP UTF-8需要直接编码吗?,unicode,utf-8,cakephp-2.0,Unicode,Utf 8,Cakephp 2.0,我使用CakePHP编写了一个应用程序。 我将所有内容都设置为使用UTF-8编码(数据库表、database.php中的数据库连接等),现在我想知道是否应该在将每个文本字符串发送到数据库之前将其编码为UTF-8(使用utf8\u encode),还是不需要 谢谢。没必要 指定到utf8的数据库连接将为您处理复杂的问题。(见评论)这是不必要的 指定到utf8的数据库连接将为您处理复杂的问题。(参见注释)请查看utf8\u编码的实际功能。它将ISO-8859-1编码文本转换为UTF-8编码文本。是的

我使用CakePHP编写了一个应用程序。 我将所有内容都设置为使用UTF-8编码(数据库表、database.php中的数据库连接等),现在我想知道是否应该在将每个文本字符串发送到数据库之前将其编码为UTF-8(使用
utf8\u encode
),还是不需要

谢谢。

没必要

指定到utf8的数据库连接将为您处理复杂的问题。(见评论)

这是不必要的


指定到utf8的数据库连接将为您处理复杂的问题。(参见注释)

请查看
utf8\u编码的实际功能。它将ISO-8859-1编码文本转换为UTF-8编码文本。是的,这个函数的名字很可怕。如果您的文本未在ISO-8859-1中编码,则不需要此功能。如果文本已在UTF-8中,则不需要此函数。简而言之,如果您从一开始就将所有内容都设置为UTF-8,那么它已经是UTF-8了,您不需要做任何其他事情。

请查看
utf8\u 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:

设置名称“utf8”

如果你能解决这个问题,请告诉我。
谢谢

这应该是连接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:

设置名称“utf8”

如果你能解决这个问题,请告诉我。
谢谢

@MozMorris谢谢你,但为什么?MySQL是自动完成的吗?不是自动完成的。但是通过将数据库和连接指定为utf8,您就安全了。@MozMorris谢谢您,但是为什么呢?MySQL是自动完成的吗?不是自动完成的。但是,通过将数据库和连接指定为utf8,您将是安全的。那么,如果我从文本区域发送一些文本,它是否已经是UTF-8?@Entropy如果您的站点指定它以UTF-8编码,浏览器将UTF-8数据发送回服务器。更明确地说,您可以为表单指定
accept charset
属性,并将其设置为UTF-8。那么,如果我从文本区域发送一些文本,它是否已经是UTF-8?@Entropy如果您的站点指定它以UTF-8编码,浏览器会将UTF-8数据发送回服务器。更明确地说,您可以为表单指定
accept charset
属性,并将其设置为UTF-8。这样就不需要执行任何其他操作。这样就不需要执行任何其他操作。