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

如何在 PHP 中将特殊的 unicode 字符转换为最接近的 ASCII

如何在 PHP 中将特殊的 unicode 字符转换为最接近的 ASCII

PHP
慕桂英546537 2023-04-28 16:27:10
当用户输入像𝘁𝘂𝘆𝗲𝗻𝗱𝘂𝗻𝗴这样的特殊 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


查看完整回答
反对 回复 2023-04-28
?
一只名叫tom的猫

TA贡献1906条经验 获得超2个赞

我不知道“tuyendung”是什么。

但在 php 中,您可以使用“iconv”函数转换字符集,或者您可以将原始形式保留在数据库的 blob 字段中。您可以在筛选中进行任何转换。

也许它给出了一个想法。


查看完整回答
反对 回复 2023-04-28
  • 2 回答
  • 0 关注
  • 152 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信