【发布时间】:2014-05-14 20:10:41
【问题描述】:
我最近开始在我正在进行的项目中使用 laravel,我目前在以正确的字符编码显示数据库中的数据时遇到问题。
我当前的系统由一个单独的脚本组成,负责用数据填充数据库,而 laravel 项目负责显示数据。使用的视图设置为将所有文本显示为 utf-8,因为我已经在视图中成功打印了特殊字符。数据库中的文本不会打印为 utf8,也不会以正确的方式打印特殊字符。我尝试过同时使用 eloquent 模型和 DB::select(),但它们都显示出同样糟糕的结果。
database.php 中的charset 设置为utf8,而collation 设置为utf8_unicode_ci。
数据库表:
CREATE TABLE `RssFeedItem` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`feedId` smallint(5) unsigned NOT NULL,
`title` varchar(250) COLLATE utf8_unicode_ci NOT NULL,
`url` varchar(250) COLLATE utf8_unicode_ci NOT NULL,
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
`text` mediumtext COLLATE utf8_unicode_ci,
`textSha1` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `url` (`url`),
KEY `feedId` (`feedId`),
CONSTRAINT `RssFeedItem_ibfk_1` FOREIGN KEY (`feedId`) REFERENCES `RssFeed` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6370 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
我还设置了一个测试页面,以查看问题是否可能是我的数据库设置,但测试页面打印的一切都很好。测试页面使用 PDO 选择所有数据,并将其打印在一个简单的 html 页面上。
有谁知道可能是什么问题?除了this link,我尝试过四处搜索,但没有找到任何可能对我有帮助的东西。
【问题讨论】:
标签: php encoding laravel character