我使用的是laravel 5.2,以下是我的数据库配置设置:
'charset' => 'utf8', 'collation' => 'utf8_general_ci',
我也试过了 'utf8_unicode_ci' 但它也不起作用。用例:这是我试图插入的文本:$str=“四月ès 9莫伊斯通行证é“是的,是的”但这是存储:
'utf8_unicode_ci'
Après 9 mois passés dans le
col17t5w1#
您看到的是文本被替换为html实体这通常是直接来自html源的文本的结果(或者是带有先前转换为的文本的表单) htmlentities 或其他来源)。这里的理想解决方案是确保文本不会以html实体编码的形式接收,但是如果这不是一个选项(通常不是),则可以使用:
htmlentities
$decoded = html_entity_decode($text);
在插入实体之前将其解码为实际字符。一些琐事:实际上,只要您正确地发送unicode文本,就不需要将所有字符编码到它们相应的实体,以便在html上显示。这就是为什么php有两个不同的函数 htmlspecialchars 以及 htmlentities 其中第一个函数只编码为了不破坏html(手册中列出的5个字符,<,>,&,“and”),而第二个函数基于链接表对所有内容进行编码。
htmlspecialchars
kcrjzv8t2#
在你的 Database.php 插入:
Database.php
'charset' => 'utf8', 'collation' => 'utf8_unicode_ci',
这将允许您以所需的格式保存字符串。请确保您的mysql设置为 utf8
utf8
2条答案
按热度按时间col17t5w1#
您看到的是文本被替换为html实体这通常是直接来自html源的文本的结果(或者是带有先前转换为的文本的表单)
htmlentities
或其他来源)。这里的理想解决方案是确保文本不会以html实体编码的形式接收,但是如果这不是一个选项(通常不是),则可以使用:
在插入实体之前将其解码为实际字符。
一些琐事:
实际上,只要您正确地发送unicode文本,就不需要将所有字符编码到它们相应的实体,以便在html上显示。这就是为什么php有两个不同的函数
htmlspecialchars
以及htmlentities
其中第一个函数只编码为了不破坏html(手册中列出的5个字符,<,>,&,“and”),而第二个函数基于链接表对所有内容进行编码。kcrjzv8t2#
在你的
Database.php
插入:这将允许您以所需的格式保存字符串。
请确保您的mysql设置为
utf8