【发布时间】:2011-11-21 14:48:46
【问题描述】:
我正在从 cakephp 到 mysql 保存到数据库。当我使用 phpmyadmin 查看数据时,"driver's" 被保存为“驱动程序”。有没有办法将这些条目保存为正常的转义字符?我认为 cake 会在他们进入数据库之前处理这些问题。另外,如果我必须以这种方式保留它们,当我将它们从数据库中拉回时,我该如何取消它们?
CREATE TABLE IF NOT EXISTS `tablename` (
`id` int(11) unsigned NOT NULL auto_increment,
`start` int(20) NOT NULL,
`stop` int(20) NOT NULL,
`completed` int(1) unsigned NOT NULL,
`score` varchar(10) default NULL,
`fc_module_id` int(11) unsigned NOT NULL,
`fc_section_id` int(11) unsigned NOT NULL,
`user_id` int(11) unsigned NOT NULL,
`selections` text character set latin1 collate latin1_bin NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1035 ;
“选择”栏是给我带来麻烦的栏目。它并不总是设置为 latin1_bin,这只是我在尝试 utf8_bin 后尝试的最新字符集。但实际上我只是在猜测字符集。
【问题讨论】:
-
数据从何而来?
-
查看这个问题和答案,为您找到潜在的解决方案:stackoverflow.com/questions/7662093/cakephp-mysql-insert-utf-8
-
我的猜测是您用来验证数据是否正确保存的工具 (phpmyadmin) 使用的是 latin1 编码。把这个改成utf8,数据就会在phpmyadmin中渲染好了。
-
@stealthyninja 将
'encoding' => 'utf8'添加到app/config/database.php数组中,从而解决了问题。谢谢你。如果你把它作为答案,我会接受它。 -
@Jim Joyce -- 酷;我现在有added it。谢谢。 :-)
标签: mysql cakephp cakephp-1.3