gpt4 book ai didi

mysql - 在mysql中保存文本字段时utf8字符被截断

转载 作者:行者123 更新时间:2023-11-30 01:29:39 25 4
gpt4 key购买 nike

我正在开发一个网站,我们在文本字段中保存日语字符。

表格如下所示:

| contactlogs | CREATE TABLE `contactlogs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`contact_email` varchar(128) CHARACTER SET latin1 NOT NULL,
`name` varchar(128) CHARACTER SET latin1 DEFAULT NULL,
`company_name` varchar(128) CHARACTER SET latin1 DEFAULT NULL,
`email` varchar(128) CHARACTER SET latin1 DEFAULT NULL,
`telephone` varchar(30) CHARACTER SET latin1 DEFAULT NULL,
`fax` varchar(30) CHARACTER SET latin1 DEFAULT NULL,
`subject` text COLLATE utf8_unicode_ci NOT NULL,
`message` text COLLATE utf8_unicode_ci NOT NULL,
`created` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |

当我检索保存的数据时,消息字段经常被切断,末尾有一个垃圾字符(我认为是因为它可能没有保存最后一个字符的所有数据。

网站本身位于 cakephp 中。只需执行 $this->model->save($data) 即可保存数据(没有更改其保存方式,模型本身是空的)。没有特殊的数据库设置。只需设置主机、登录、持久=> false、驱动程序=> mysql、数据库、前缀。

最佳答案

您的数据库和表可能采用 latin1 默认排序规则,因此如果数据库配置中没有 'encoding' => 'utf8' ,蛋糕将与数据库对话拉丁语1.将 UTF 转码为 latin1 并返回后会留下数据丢失的空间。这实际上并不是蛋糕的问题。

因此,继续将连接更改为 UTF 以及数据库中的所有默认排序规则。新保存的数据将正常显示,对于旧的数据将取决于情况,我不会详细说明,因为它断章取义。

关于mysql - 在mysql中保存文本字段时utf8字符被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17624331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com