在php laravel中比较两个编码不同的字符串总是返回false



我试图比较两个字符串,但它总是返回false。两个字符串都是相同的,但当我进一步检查它时,我知道一个是utf-8(来自数据库/雄辩),另一个是从表单(ancii)提交的。主要问题是,在数据库中,字符串之间和之后有空格。我也尝试使用mysql TRIM(),但失败了。有线索我该怎么办?

我也尝试用

改变编码
iconv("UTF-8", "ISO-8859-1",str_replace(' ', '', $request->sentence))

尝试将string与strcmp()进行比较,但它从不返回0

感谢您的关注和帮助。

$sentence = AvailableSentence::
where('sentence_id', $request->sentence_id)
->with(['details'])
//->where
->first();
//var_dump(strcmp( str_replace(' ', '', $sentence->details->sentence) , str_replace(' ', '', $request->sentence) ));
//var_dump( iconv("UTF-8", "ISO-8859-1",str_replace(' ', '', $request->sentence)) );
//var_dump(mb_detect_encoding(' ', '', $sentence->details->sentence));

您可以在客户端设置它应该在哪个字符集上:

<meta charset="utf-8">

<form ... accept-charset="utf-8">

与https://stackoverflow.com/a/39381595/5663411相关

最新更新