在我的桌子上,我有这样一行:
很棒...
当我尝试在视图中显示它时,它显示以下内容:
很棒... ???
在html页面的顶部,我有一个标记
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
在core.php中,我有:
Configure :: write('App.encoding','UTF-8');
在我的database.php中,我有:
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => 'xxx',
'database' => 'xxx',
'prefix' => '',
'encoding' => 'utf8',
);
我正在用php转换当前的python脚本,我可以看到以下代码:
“注释文字”:row [2] .encode('unicode-escape'),
我试图在php中找到与encode('unicode-escape')等效的东西,但未找到任何内容。
我是否需要在PHP显示中使用类似的功能,或者不需要使用等效的功能,而我的编码设置有问题?
答案 0 :(得分:0)
我以前也有同样的问题。问题是utf8
编码每个字符仅支持三个字节。您可以阅读详细信息here
MySQL的utf8
不是UTF-8。因此,您无法保存一些字符和表情符号,有时它可能会切断您的文本。
我所做的是将utf8mb4
应用于所有表和架构。
例如
`ALTER TABLE your_table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;`
`ALTER SCHEMA `your_schema` DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_unicode_ci;`
之后,也很高兴保存表情符号:)。