为了账号安全,请及时绑定邮箱和手机立即绑定

错误的排序规则会创建无效的标记 laravel

错误的排序规则会创建无效的标记 laravel

PHP
德玛西亚99 2022-07-29 12:29:37
所以我在我的 localhost 中开发了一个 laravel 应用程序,它是一台 Windows 笔记本电脑,但我的应用程序服务器位于 linux 服务器中。当我在 textarea 中开发和保存一些带有特殊字符的随机文本时,例如“Ç ~ º”,所有内容都很好地保存在 db 中并显示在浏览器中。问题出在服务器(linux)中,它会创建特殊字符,例如“pátio nº 64/2”,并在浏览器中显示错误。我试图将 config/database.php 文件中的排序规则更改为与 db 相同(我们使用葡萄牙语排序规则)'collation' => 'Latin1_General_CI_AS' 和 charset =>'utf8' 但没有任何改变。有任何想法吗?我正在使用 sql server 数据库如果我将字符集更改为 latin1 而不是 utf8,则服务器显示错误PDOException in Connector.php line 55SQLSTATE [] (null) (severity o)在保存在数据库中之前,我也尝试过使用 html 解码实体,但没有奏效。在这个问题上我真的需要一些帮助......
查看完整描述

2 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

你必须改变collate和charset。如果您能够设置collate并charset通过,config/database.php那么您可以这样做(对于 mysql):


'charset' => 'utf8mb4',

'collation' => 'utf8mb4_unicode_ci',

但是,如果您不想更改数据库排序规则,那么您可以选择仅更改特定表的排序规则和字符集。为此,请使用以下查询:


ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;



查看完整回答
反对 回复 2022-07-29
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

在我的控制器中,我在保存之前使用过它,

$var = iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $request->input ('input1' ));


查看完整回答
反对 回复 2022-07-29
  • 2 回答
  • 0 关注
  • 108 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号