如何在JavaScript或PHP中将unicode转换为ascii?

mnowg1ta  于 2022-12-21  发布在  PHP
关注(0)|答案(2)|浏览(200)

我有一个应用程序,我的一个用户使用某种自定义键盘,可以改变他们键入的字体。
他们将这些字符输入应用程序搜索框。
𝙈𝙖𝙢𝙮𝙥𝙤𝙠𝙤
我相信这是Unicode字符?如果我错了请纠正我。
然后这个词被转换成查询参数。

?search=%F0%9D%99%88%F0%9D%99%96%F0%9D%99%A2%F0%9D%99%AE%F0%9D%99%A5%F0%9D%99%A4%F0%9D%99%A0%F0%9D%99%A4

并且服务器不返回结果。
如何将字符更改回常规ASCII“Mamypoko”,使我的应用程序显示所需的结果,无论用户的键盘?
我不介意使用JavaScript或PHP,我只是需要在调用MySQL查询之前进行转换。

n6lpvg4x

n6lpvg4x1#

对于这种特殊情况,带有//TRANSLIT标志的iconv可以帮助您。

$search="%F0%9D%99%88%F0%9D%99%96%F0%9D%99%A2%F0%9D%99%AE%F0%9D%99%A5%F0%9D%99%A4%F0%9D%99%A0%F0%9D%99%A4";

$converted = iconv("UTF-8", "ISO-8859-1//TRANSLIT", urldecode($search));

var_dump($converted);

这将为您提供:

string(8) "Mamypoko"
rsaldnfx

rsaldnfx2#

当你在php中使用urldecode()函数时,你可以得到一个精确的结果。
代码:

$myString= 'https://lamesarv.com?search=%F0%9D%99%88%F0%9D%99%96%F0%9D%99%A2%F0%9D%99%AE%F0%9D%99%A5%F0%9D%99%A4%F0%9D%99%A0%F0%9D%99%A4
';

echo urldecode($myString);

结果:

https://lamesarv.com?search=𝙈𝙖𝙢𝙮𝙥𝙤𝙠𝙤

相关问题