当用户输入像𝘁𝘂𝘆𝗲𝗻𝗱𝘂𝗻𝗴这样的特殊 Unicode 字符串时,我遇到了问题,我的系统无法将其与用 ASCII 编写的字符串“tuyendung”区分开来。问题是如何在将输入字符串存储到数据库之前将其规范化为 ASCII?示例输入:𝘁𝘂𝘆𝗲𝗻𝗱𝘂𝗻𝗴(字符代码:0xd835、0xde01、0xd835、0xde02、0xd835、0xde06、0xd835、0xddf2、0xd835、0xddfb、0xd835、0xddf1、0xd835、0xde02、0xd835、 0xddfb、0xd835、0xddf4)预期输出:图延东(字符代码:0x74、0x75、0x79、0x65、0x6e、0x64、0x75、0x6e、0x67)
2 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
看起来这个//TRANSLIT选项可以解决这个问题。
<?php
$input = '𝘁𝘂𝘆𝗲𝗻𝗱𝘂𝗻𝗴';
echo iconv('UTF-8', 'US-ASCII//TRANSLIT', $input);
这将(我认为是什么?)像𝘁这样的数学符号变成了t
一只名叫tom的猫
TA贡献1906条经验 获得超3个赞
我不知道“tuyendung”是什么。
但在 php 中,您可以使用“iconv”函数转换字符集,或者您可以将原始形式保留在数据库的 blob 字段中。您可以在筛选中进行任何转换。
也许它给出了一个想法。
- 2 回答
- 0 关注
- 182 浏览
添加回答
举报
0/150
提交
取消