我有一堆数据,可能是混合字符、特殊字符和“重音”字符等。
我一直在使用带有 translit 的 php inconv,但今天注意到一个项目符号点被转换为“公牛”。我不知道像这样的其他字符不会被转换或删除。$、*、% 等确实会被删除。
基本上我想做的是保留字母,但只删除“非语言”位。
这是我一直在使用的代码
$slugIt = @iconv('UTF-8', 'ASCII//TRANSLIT', $slugIt); $slugIt = preg_replace("/[^a-zA-Z0-9 -]/", "", $slugIt);
当然,如果我将 preg_replace 移动到 inconv 函数上方,重音字符将在翻译之前被删除,所以这也不起作用。
对此有什么想法吗?或者 TRANSLIT 中遗漏了哪些非字母字符?
---------------------已编辑---------------------------- ----- 奇怪的是,似乎不是 TRANSLIT 将子弹更改为“公牛”。我注释掉了 preg-replace,“公牛”已经回到了一个要点。不幸的是,我正在尝试使用它来创建可读的 url 以及其他一些东西,所以我仍然需要进行 url 编码。