我正在开发一个应用程序,我需要存储/显示包含许多特殊字符的数据。我已设置数据库排序规则utf8
。我已将表utf8
和字符集的排序规则设置为utf8_unicode_ci
。它存储了é
,â
等所有特殊字符。但是,每当角色€
出现时,它就不会被存储。就像有“attributedâ€
字时,它变为âattributedâ
。我目前正在使用Laravel 5.2(PHP)。
到目前为止我尝试了什么 我在我的代码中设置了以下内容
iconv_set_encoding('internal_encoding', 'UTF-8');
mb_internal_encoding('UTF-8');
我也试过
$value = array_map("utf8_encode", $array);
但是这个特殊字符并没有按原样存储。是否有人让我知道我应该怎么做才能保存这个特殊字符。
答案 0 :(得分:0)
尝试将整理设置为" utf8_general_ci"在你的mysql中
答案 1 :(得分:0)
通常将€
符号存储到数据库字段没有问题。检查所有脚本是否都处于正确的编码状态。
将您的表格和该表格中的所有数据设置为utf8_general_ci
,然后尝试将您的php文件更改为UTF-8。
header('Content-Type: text/html; charset=utf-8');
如果您的数据不正确,请使用。
utf8_encode("test");
将您的字符串编码为正确的UTF-8字符串。如果这不起作用,我认为您尝试转换的数据或字符串不正确。
答案 2 :(得分:0)
为了能够在查询中使用UTF8字符,您必须运行某个查询设置,如下所示:
php_flag opcache.enable Off
但我看到你说你正在使用Laravel。我没有一直在努力,但我想这是由config中编写的$db->query("SET NAMES UTF8");
参数自动设置的,就像在这个问题的屏幕截图中一样:
Laravel UTF-8 To Database