当用户输入特殊 Unicode 字符串(如 𝘁𝘂𝘆𝗲𝗻𝗱𝘂𝗻𝗴)时,我遇到问题,并且我的系统无法将其与以 ASCII 编写的字符串“tuyendung”区分开。问题是如何在将输入字符串存储到数据库之前将其标准化为 ASCII?
示例输入:
𝘁𝘂𝘆𝗲𝗻𝗱𝘂𝗻𝗴
(字符代码:0xd835、0xde01、0xd835、0xde02、0xd835、0xde06、0xd835、0xddf2、0xd835、0xddfb、0xd835、0xddf1、0xd835、0xde02、0xd835、0xdd FB,0xd835,0xddf4)
预期输出:
tuyendung
(字符代码:0x74、0x75、0x79、0x65、0x6e、0x64、0x75、0x6e、0x67)
最佳答案
看起来 //TRANSLIT
选项可以解决这个问题。
<?php
$input = '𝘁𝘂𝘆𝗲𝗻𝗱𝘂𝗻𝗴';
echo iconv('UTF-8', 'US-ASCII//TRANSLIT', $input);
这会将(我认为是什么?)像 𝘁 这样的数学符号变成 t
关于php - 如何在 PHP 中将特殊的 unicode 字符转换为最接近的 ASCII,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62186922/