【发布时间】:2014-03-31 07:55:36
【问题描述】:
我需要用其他字符替换字符串中的特殊字符。例如,“ä”可以用“a”或“ae”替换,“à”也可以用“a”替换。通常使用 PHP 很容易做到这一点,并且 stackoverflow 上有很多函数,它们已经完全做到了。
不幸的是,我的字符串如下所示:“u\u0308 a\u0302 a\u0308 o\u0300.zip”(ü â ä ò.zip)。您可能会看到我的字符串是文件名,而 OSX 似乎将字符转换为 unicode(至少我是这么认为的)。
我知道我可以在 PHP 中使用一个包含所有特殊字符的非常长的数组来替换它们:
$str = "u\u0308 a\u0302 a\u0308 o\u0300.zip";
$ch = array("u\u0308", "a\u0302", "a\u0308", "o\u0300");
$chReplace = = array("u", "a", "a", "o");
str_replace($ch, $chReplace, $str);
但我想知道是否有更简单的方法,所以我不必为每个角色手动执行此操作?
【问题讨论】:
-
mb_convert_encoding() 或 iconv() 与
//TRANSLIT -
utf8_encode($data)也可能有效。 -
@PimVerlangen
utf8_encode输出相同的字符串,所以 "u\u0308 a\u0302 a\u0308 o\u0300.zip" -
@MarkBaker 我必须使用什么作为字符集/编码类型?
-
它可能是什么字符集?我只能猜测! “ISO-8859-1”也许