Mah*_*Dev 5 php mysql database utf-8 laravel
我正在使用 laravel 5.2,这是我的数据库配置设置:
'charset' => 'utf8',
'collation' => 'utf8_general_ci',
Run Code Online (Sandbox Code Playgroud)
我也试过'utf8_unicode_ci'
作为整理,但它也不起作用。
用例:这是我要插入的文本:
$str = "Après 9 mois passés dans le"
但这是存储:
Après 9 mois passés dans le
Run Code Online (Sandbox Code Playgroud)
您看到的文本被替换为HTML 实体,这通常是直接来自 HTML 源(包含先前转换的文本的表单htmlentities
或其他源)的文本的结果。
这里的理想解决方案是确保文本不会以 HTML 实体编码的形式接收,但是如果这不是一个选项(通常不是),您可以使用:
$decoded = html_entity_decode($text);
Run Code Online (Sandbox Code Playgroud)
在插入实体之前将其解码为其实际字符。
一些琐事:
实际上,只要正确发送 Unicode 文本,您并不需要将所有字符编码为相应的实体以在 HTML 上显示。这就是为什么 PHP 有 2 个不同的函数htmlspecialchars
,htmlentities
第一个函数只编码必要的内容,以免破坏 HTML(手册中列出的 5 个字符,<、>、&、" 和 '),而第二个函数则编码一切都基于链接表。
归档时间: |
|
查看次数: |
5381 次 |
最近记录: |