我在 PHP 中从数据库读取字符串,这些字符串是 URL,乍一看它们看起来很好,但似乎末尾有一些奇怪的字符。在浏览器的地址栏中,字符串“%E2%80%8E”会被附加到 URL 上,导致 URL 错误。
我发现了这篇帖子,介绍了如何在 PHP 中去除字符串中的从左至右标记(left-to-right-mark),它似乎与我的问题有关,但该解决方案对我不起作用,因为我的字符似乎是其他东西。
那么,我该如何确定我有哪个字符,以便从字符串中删除它?
(我想在此贴出其中一个示例 URL,但是当我将其粘贴在 Stack Overflow 表单中时,它就会删除末尾的字符。)
我知道我只能允许字符串中的某些字符并丢弃所有其他字符。但我仍然想知道是哪个字符,以及它是如何进入数据库的。
编辑:问题已得到回答,并且接受的答案中给出的代码对我有效:
$str = preg_replace('/\p{C}+/u', "", $str);