我一直在 stackover 中一遍又一遍地搜索,但没有找到解决我的问题的方法。
我需要将用户输入的字符串与 mysql 数据库中的现有字符串进行比较。
数据库中存储的字符串如下:
xuất khẩu
意思是:“xuất khẩu”:)
用户从文本框中输入的字符串是:“xuất khẩu”
但是当我尝试比较 2 个字符串、mb_encode、htmlentities 等时。但它绝不表示字符串匹配!
数据库使用utf-8通用ci,网站正确显示utf8字体。
谁能给我解决这个问题吗?
最佳答案
在比较使用时请确保:
html_entity_decode($mysqlValue, ENT_QUOTES, 'UTF-8'); // Compare with the unprocessed user input.
(这会将 HTML 实体中的 DB 值解码为特殊字符。)
或者:
htmlentities($userInput, ENT_QUOTES, 'UTF-8'); // Compare with the unprocessed DB value.
(这会将用户的输入从包含特殊字符的字符串编码为包含 HTML 实体的字符串。)
数据库中的文本是 HTML 实体,所以我会寻找基于此的解决方案。我怀疑 UTF-8 编码是问题所在,但最好在函数中指定以防万一。
关于php - 将 unicode 输入与数据库字符串进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11556200/