regex 将外来字符更改为与其对应的罗马字符

q3aa0525  于 2023-06-25  发布在  其他
关注(0)|答案(8)|浏览(193)

我正在使用php,我想知道是否有一种预定义的方法将外国字符转换为非外国字符。
ê、ë、é 这样的字符都导致 'e'
我正在寻找一个函数,它将接受一个字符串,并返回它没有特殊字符。
任何想法将不胜感激!

wn9m85ua

wn9m85ua1#

在没有找到合适的转换器后,我创建了适合我需要的自己的集合,包括我最喜欢的西里尔文转换,默认情况下有许多变化。

function transliterateString($txt) {
    $transliterationTable = array('á' => 'a', 'Á' => 'A', 'à' => 'a', 'À' => 'A', 'ă' => 'a', 'Ă' => 'A', 'â' => 'a', 'Â' => 'A', 'å' => 'a', 'Å' => 'A', 'ã' => 'a', 'Ã' => 'A', 'ą' => 'a', 'Ą' => 'A', 'ā' => 'a', 'Ā' => 'A', 'ä' => 'ae', 'Ä' => 'AE', 'æ' => 'ae', 'Æ' => 'AE', 'ḃ' => 'b', 'Ḃ' => 'B', 'ć' => 'c', 'Ć' => 'C', 'ĉ' => 'c', 'Ĉ' => 'C', 'č' => 'c', 'Č' => 'C', 'ċ' => 'c', 'Ċ' => 'C', 'ç' => 'c', 'Ç' => 'C', 'ď' => 'd', 'Ď' => 'D', 'ḋ' => 'd', 'Ḋ' => 'D', 'đ' => 'd', 'Đ' => 'D', 'ð' => 'dh', 'Ð' => 'Dh', 'é' => 'e', 'É' => 'E', 'è' => 'e', 'È' => 'E', 'ĕ' => 'e', 'Ĕ' => 'E', 'ê' => 'e', 'Ê' => 'E', 'ě' => 'e', 'Ě' => 'E', 'ë' => 'e', 'Ë' => 'E', 'ė' => 'e', 'Ė' => 'E', 'ę' => 'e', 'Ę' => 'E', 'ē' => 'e', 'Ē' => 'E', 'ḟ' => 'f', 'Ḟ' => 'F', 'ƒ' => 'f', 'Ƒ' => 'F', 'ğ' => 'g', 'Ğ' => 'G', 'ĝ' => 'g', 'Ĝ' => 'G', 'ġ' => 'g', 'Ġ' => 'G', 'ģ' => 'g', 'Ģ' => 'G', 'ĥ' => 'h', 'Ĥ' => 'H', 'ħ' => 'h', 'Ħ' => 'H', 'í' => 'i', 'Í' => 'I', 'ì' => 'i', 'Ì' => 'I', 'î' => 'i', 'Î' => 'I', 'ï' => 'i', 'Ï' => 'I', 'ĩ' => 'i', 'Ĩ' => 'I', 'į' => 'i', 'Į' => 'I', 'ī' => 'i', 'Ī' => 'I', 'ĵ' => 'j', 'Ĵ' => 'J', 'ķ' => 'k', 'Ķ' => 'K', 'ĺ' => 'l', 'Ĺ' => 'L', 'ľ' => 'l', 'Ľ' => 'L', 'ļ' => 'l', 'Ļ' => 'L', 'ł' => 'l', 'Ł' => 'L', 'ṁ' => 'm', 'Ṁ' => 'M', 'ń' => 'n', 'Ń' => 'N', 'ň' => 'n', 'Ň' => 'N', 'ñ' => 'n', 'Ñ' => 'N', 'ņ' => 'n', 'Ņ' => 'N', 'ó' => 'o', 'Ó' => 'O', 'ò' => 'o', 'Ò' => 'O', 'ô' => 'o', 'Ô' => 'O', 'ő' => 'o', 'Ő' => 'O', 'õ' => 'o', 'Õ' => 'O', 'ø' => 'oe', 'Ø' => 'OE', 'ō' => 'o', 'Ō' => 'O', 'ơ' => 'o', 'Ơ' => 'O', 'ö' => 'oe', 'Ö' => 'OE', 'ṗ' => 'p', 'Ṗ' => 'P', 'ŕ' => 'r', 'Ŕ' => 'R', 'ř' => 'r', 'Ř' => 'R', 'ŗ' => 'r', 'Ŗ' => 'R', 'ś' => 's', 'Ś' => 'S', 'ŝ' => 's', 'Ŝ' => 'S', 'š' => 's', 'Š' => 'S', 'ṡ' => 's', 'Ṡ' => 'S', 'ş' => 's', 'Ş' => 'S', 'ș' => 's', 'Ș' => 'S', 'ß' => 'SS', 'ť' => 't', 'Ť' => 'T', 'ṫ' => 't', 'Ṫ' => 'T', 'ţ' => 't', 'Ţ' => 'T', 'ț' => 't', 'Ț' => 'T', 'ŧ' => 't', 'Ŧ' => 'T', 'ú' => 'u', 'Ú' => 'U', 'ù' => 'u', 'Ù' => 'U', 'ŭ' => 'u', 'Ŭ' => 'U', 'û' => 'u', 'Û' => 'U', 'ů' => 'u', 'Ů' => 'U', 'ű' => 'u', 'Ű' => 'U', 'ũ' => 'u', 'Ũ' => 'U', 'ų' => 'u', 'Ų' => 'U', 'ū' => 'u', 'Ū' => 'U', 'ư' => 'u', 'Ư' => 'U', 'ü' => 'ue', 'Ü' => 'UE', 'ẃ' => 'w', 'Ẃ' => 'W', 'ẁ' => 'w', 'Ẁ' => 'W', 'ŵ' => 'w', 'Ŵ' => 'W', 'ẅ' => 'w', 'Ẅ' => 'W', 'ý' => 'y', 'Ý' => 'Y', 'ỳ' => 'y', 'Ỳ' => 'Y', 'ŷ' => 'y', 'Ŷ' => 'Y', 'ÿ' => 'y', 'Ÿ' => 'Y', 'ź' => 'z', 'Ź' => 'Z', 'ž' => 'z', 'Ž' => 'Z', 'ż' => 'z', 'Ż' => 'Z', 'þ' => 'th', 'Þ' => 'Th', 'µ' => 'u', 'а' => 'a', 'А' => 'a', 'б' => 'b', 'Б' => 'b', 'в' => 'v', 'В' => 'v', 'г' => 'g', 'Г' => 'g', 'д' => 'd', 'Д' => 'd', 'е' => 'e', 'Е' => 'E', 'ё' => 'e', 'Ё' => 'E', 'ж' => 'zh', 'Ж' => 'zh', 'з' => 'z', 'З' => 'z', 'и' => 'i', 'И' => 'i', 'й' => 'j', 'Й' => 'j', 'к' => 'k', 'К' => 'k', 'л' => 'l', 'Л' => 'l', 'м' => 'm', 'М' => 'm', 'н' => 'n', 'Н' => 'n', 'о' => 'o', 'О' => 'o', 'п' => 'p', 'П' => 'p', 'р' => 'r', 'Р' => 'r', 'с' => 's', 'С' => 's', 'т' => 't', 'Т' => 't', 'у' => 'u', 'У' => 'u', 'ф' => 'f', 'Ф' => 'f', 'х' => 'h', 'Х' => 'h', 'ц' => 'c', 'Ц' => 'c', 'ч' => 'ch', 'Ч' => 'ch', 'ш' => 'sh', 'Ш' => 'sh', 'щ' => 'sch', 'Щ' => 'sch', 'ъ' => '', 'Ъ' => '', 'ы' => 'y', 'Ы' => 'y', 'ь' => '', 'Ь' => '', 'э' => 'e', 'Э' => 'e', 'ю' => 'ju', 'Ю' => 'ju', 'я' => 'ja', 'Я' => 'ja');
    return str_replace(array_keys($transliterationTable), array_values($transliterationTable), $txt);
}
qni6mghb

qni6mghb2#

我的第一个建议是iconv函数。也就是说,因为它内置在PHP中,所以不需要任何外部或第三方库。此外,它是一个专门用来完成您想要完成的任务的函数(接受一个字符集作为输入,并输出一个替代字符集,特别是从UTF-8到ASCII)。下面是如何调用此函数的示例:

$clean_ascii_output = iconv('UTF-8', 'ASCII//TRANSLIT', $utf8_input);

关于这个PHP函数的细节的更多信息可以在这里找到:http://php.net/manual/en/function.iconv.php
注意:iconv函数接受字符串输入,因此您需要迭代数据,并解析数据,以便传入字符串输入。

kyvafyod

kyvafyod3#

我编写了这个函数,它使用PHP内置的HTML实体转换表来 * 罗马化 * 字符:

function Unaccent($string)
{
    if (strpos($string = htmlentities($string, ENT_QUOTES, 'UTF-8'), '&') !== false)
    {
        $string = html_entity_decode(preg_replace('~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|tilde|uml);~i', '$1', $string), ENT_QUOTES, 'UTF-8');
    }

    return $string;
}

它的工作原理是应用htmlentities(),然后删除公共实体后缀,一个简单的例子:

- ã = ã -> a
 - Ã = Ã -> A
 - õ = õ -> o
 - Õ = Õ -> O
 - æ = æ  -> ae
 - Æ = Æ  -> AE

要注意的是,要使其正常工作,您的文件需要使用UTF-8编码(显然没有BOM)。
另一个例子见我的另一个答案。

hzbexzde

hzbexzde5#

看到这个老问题,仍然不知道最好的答案是什么。如果它可以帮助其他人,这里是一个数组,我自动作出了从
http://www.fileformat.info/info/charset/UTF-8/list.htm

array ("À" => "A",
"Á" => "A",
"Â" => "A",
"Ã" => "A",
"Ä" => "A",
"Å" => "A",
"Æ" => "AE",
"Ç" => "C",
"È" => "E",
"É" => "E",
"Ê" => "E",
"Ë" => "E",
"Ì" => "I",
"Í" => "I",
"Î" => "I",
"Ï" => "I",
"Ð" => "ETH",
"Ñ" => "N",
"Ò" => "O",
"Ó" => "O",
"Ô" => "O",
"Õ" => "O",
"Ö" => "O",
"Ø" => "O",
"Ù" => "U",
"Ú" => "U",
"Û" => "U",
"Ü" => "U",
"Ý" => "Y",
"Þ" => "THORN",
"ß" => "s",
"à" => "a",
"á" => "a",
"â" => "a",
"ã" => "a",
"ä" => "a",
"å" => "a",
"æ" => "ae",
"ç" => "c",
"è" => "e",
"é" => "e",
"ê" => "e",
"ë" => "e",
"ì" => "i",
"í" => "i",
"î" => "i",
"ï" => "i",
"ð" => "eth",
"ñ" => "n",
"ò" => "o",
"ó" => "o",
"ô" => "o",
"õ" => "o",
"ö" => "o",
"ø" => "o",
"ù" => "u",
"ú" => "u",
"û" => "u",
"ü" => "u",
"ý" => "y",
"þ" => "thorn",
"ÿ" => "y",
"Ā" => "A",
"ā" => "a",
"Ă" => "A",
"ă" => "a",
"Ą" => "A",
"ą" => "a",
"Ć" => "C",
"ć" => "c",
"Ĉ" => "C",
"ĉ" => "c",
"Ċ" => "C",
"ċ" => "c",
"Č" => "C",
"č" => "c",
"Ď" => "D",
"ď" => "d",
"Đ" => "D",
"đ" => "d",
"Ē" => "E",
"ē" => "e",
"Ĕ" => "E",
"ĕ" => "e",
"Ė" => "E",
"ė" => "e",
"Ę" => "E",
"ę" => "e",
"Ě" => "E",
"ě" => "e",
"Ĝ" => "G",
"ĝ" => "g",
"Ğ" => "G",
"ğ" => "g",
"Ġ" => "G",
"ġ" => "g",
"Ģ" => "G",
"ģ" => "g",
"Ĥ" => "H",
"ĥ" => "h",
"Ħ" => "H",
"ħ" => "h",
"Ĩ" => "I",
"ĩ" => "i",
"Ī" => "I",
"ī" => "i",
"Ĭ" => "I",
"ĭ" => "i",
"Į" => "I",
"į" => "i",
"İ" => "I",
"ı" => "i",
"Ĵ" => "J",
"ĵ" => "j",
"Ķ" => "K",
"ķ" => "k",
"ĸ" => "kra",
"Ĺ" => "L",
"ĺ" => "l",
"Ļ" => "L",
"ļ" => "l",
"Ľ" => "L",
"ľ" => "l",
"Ŀ" => "L",
"ŀ" => "l",
"Ł" => "L",
"ł" => "l",
"Ń" => "N",
"ń" => "n",
"Ņ" => "N",
"ņ" => "n",
"Ň" => "N",
"ň" => "n",
"ʼn" => "n",
"Ŋ" => "ENG",
"ŋ" => "eng",
"Ō" => "O",
"ō" => "o",
"Ŏ" => "O",
"ŏ" => "o",
"Ő" => "O",
"ő" => "o",
"Ŕ" => "R",
"ŕ" => "r",
"Ŗ" => "R",
"ŗ" => "r",
"Ř" => "R",
"ř" => "r",
"Ś" => "S",
"ś" => "s",
"Ŝ" => "S",
"ŝ" => "s",
"Ş" => "S",
"ş" => "s",
"Š" => "S",
"š" => "s",
"Ţ" => "T",
"ţ" => "t",
"Ť" => "T",
"ť" => "t",
"Ŧ" => "T",
"ŧ" => "t",
"Ũ" => "U",
"ũ" => "u",
"Ū" => "U",
"ū" => "u",
"Ŭ" => "U",
"ŭ" => "u",
"Ů" => "U",
"ů" => "u",
"Ű" => "U",
"ű" => "u",
"Ų" => "U",
"ų" => "u",
"Ŵ" => "W",
"ŵ" => "w",
"Ŷ" => "Y",
"ŷ" => "y",
"Ÿ" => "Y",
"Ź" => "Z",
"ź" => "z",
"Ż" => "Z",
"ż" => "z",
"Ž" => "Z",
"ž" => "z",
"ſ" => "s",
"ƀ" => "b",
"Ɓ" => "B",
"Ƃ" => "B",
"ƃ" => "b",
"Ƅ" => "SIX",
"ƅ" => "six",
"Ɔ" => "O",
"Ƈ" => "C",
"ƈ" => "c",
"Ɖ" => "D",
"Ɗ" => "D",
"Ƌ" => "D",
"ƌ" => "d",
"ƍ" => "delta",
"Ǝ" => "E",
"Ə" => "SCHWA",
"Ɛ" => "E",
"Ƒ" => "F",
"ƒ" => "f",
"Ɠ" => "G",
"Ɣ" => "GAMMA",
"ƕ" => "hv",
"Ɩ" => "IOTA",
"Ɨ" => "I",
"Ƙ" => "K",
"ƙ" => "k",
"ƚ" => "l",
"ƛ" => "lambda",
"Ɯ" => "M",
"Ɲ" => "N",
"ƞ" => "n",
"Ɵ" => "O",
"Ơ" => "O",
"ơ" => "o",
"Ƣ" => "OI",
"ƣ" => "oi",
"Ƥ" => "P",
"ƥ" => "p",
"Ƨ" => "TWO",
"ƨ" => "two",
"Ʃ" => "ESH",
"ƫ" => "t",
"Ƭ" => "T",
"ƭ" => "t",
"Ʈ" => "T",
"Ư" => "U",
"ư" => "u",
"Ʊ" => "UPSILON",
"Ʋ" => "V",
"Ƴ" => "Y",
"ƴ" => "y",
"Ƶ" => "Z",
"ƶ" => "z",
"Ʒ" => "EZH",
"Ƹ" => "EZH",
"ƹ" => "ezh",
"ƺ" => "ezh",
"Ƽ" => "FIVE",
"ƽ" => "five",
"DŽ" => "DZ",
"Dž" => "D",
"dž" => "dz",
"LJ" => "LJ",
"Lj" => "L",
"lj" => "lj",
"NJ" => "NJ",
"Nj" => "N",
"nj" => "nj",
"Ǎ" => "A",
"ǎ" => "a",
"Ǐ" => "I",
"ǐ" => "i",
"Ǒ" => "O",
"ǒ" => "o",
"Ǔ" => "U",
"ǔ" => "u",
"Ǖ" => "U",
"ǖ" => "u",
"Ǘ" => "U",
"ǘ" => "u",
"Ǚ" => "U",
"ǚ" => "u",
"Ǜ" => "U",
"ǜ" => "u",
"ǝ" => "e",
"Ǟ" => "A",
"ǟ" => "a",
"Ǡ" => "A",
"ǡ" => "a",
"Ǣ" => "AE",
"ǣ" => "ae",
"Ǥ" => "G",
"ǥ" => "g",
"Ǧ" => "G",
"ǧ" => "g",
"Ǩ" => "K",
"ǩ" => "k",
"Ǫ" => "O",
"ǫ" => "o",
"Ǭ" => "O",
"ǭ" => "o",
"Ǯ" => "EZH",
"ǯ" => "ezh",
"ǰ" => "j",
"DZ" => "DZ",
"Dz" => "D",
"dz" => "dz",
"Ǵ" => "G",
"ǵ" => "g",
"Ƕ" => "HWAIR",
"Ƿ" => "WYNN",
"Ǹ" => "N",
"ǹ" => "n",
"Ǻ" => "A",
"ǻ" => "a",
"Ǽ" => "AE",
"ǽ" => "ae",
"Ǿ" => "O",
"ǿ" => "o",
"Ȁ" => "A",
"ȁ" => "a",
"Ȃ" => "A",
"ȃ" => "a",
"Ȅ" => "E",
"ȅ" => "e",
"Ȇ" => "E",
"ȇ" => "e",
"Ȉ" => "I",
"ȉ" => "i",
"Ȋ" => "I",
"ȋ" => "i",
"Ȍ" => "O",
"ȍ" => "o",
"Ȏ" => "O",
"ȏ" => "o",
"Ȑ" => "R",
"ȑ" => "r",
"Ȓ" => "R",
"ȓ" => "r",
"Ȕ" => "U",
"ȕ" => "u",
"Ȗ" => "U",
"ȗ" => "u",
"Ș" => "S",
"ș" => "s",
"Ț" => "T",
"ț" => "t",
"Ȝ" => "YOGH",
"ȝ" => "yogh",
"Ȟ" => "H",
"ȟ" => "h",
"Ƞ" => "N",
"ȡ" => "d",
"Ȣ" => "OU",
"ȣ" => "ou",
"Ȥ" => "Z",
"ȥ" => "z",
"Ȧ" => "A",
"ȧ" => "a",
"Ȩ" => "E",
"ȩ" => "e",
"Ȫ" => "O",
"ȫ" => "o",
"Ȭ" => "O",
"ȭ" => "o",
"Ȯ" => "O",
"ȯ" => "o",
"Ȱ" => "O",
"ȱ" => "o",
"Ȳ" => "Y",
"ȳ" => "y",
"ȴ" => "l",
"ȵ" => "n",
"ȶ" => "t",
"ȷ" => "j",
"ȸ" => "db",
"ȹ" => "qp",
"Ⱥ" => "A",
"Ȼ" => "C",
"ȼ" => "c",
"Ƚ" => "L",
"Ⱦ" => "T",
"ȿ" => "s",
"ɀ" => "z",
"Ɂ" => "STOP",
"ɂ" => "stop",
"Ƀ" => "B",
"Ʉ" => "U",
"Ʌ" => "V",
"Ɇ" => "E",
"ɇ" => "e",
"Ɉ" => "J",
"ɉ" => "j",
"Ɋ" => "Q",
"ɋ" => "q",
"Ɍ" => "R",
"ɍ" => "r",
"Ɏ" => "Y",
"ɏ" => "y",
"ɐ" => "a",
"ɑ" => "alpha",
"ɒ" => "alpha",
"ɓ" => "b",
"ɔ" => "o",
"ɕ" => "c",
"ɖ" => "d",
"ɗ" => "d",
"ɘ" => "e",
"ə" => "schwa",
"ɚ" => "schwa",
"ɛ" => "e",
"ɜ" => "e",
"ɝ" => "e",
"ɞ" => "e",
"ɟ" => "j",
"ɠ" => "g",
"ɡ" => "script",
"ɣ" => "gamma",
"ɤ" => "rams",
"ɥ" => "h",
"ɦ" => "h",
"ɧ" => "heng",
"ɨ" => "i",
"ɩ" => "iota",
"ɫ" => "l",
"ɬ" => "l",
"ɭ" => "l",
"ɮ" => "lezh",
"ɯ" => "m",
"ɰ" => "m",
"ɱ" => "m",
"ɲ" => "n",
"ɳ" => "n",
"ɵ" => "barred",
"ɷ" => "omega",
"ɸ" => "phi",
"ɹ" => "r",
"ɺ" => "r",
"ɻ" => "r",
"ɼ" => "r",
"ɽ" => "r",
"ɾ" => "r",
"ɿ" => "r",
"ʂ" => "s",
"ʃ" => "esh",
"ʄ" => "j",
"ʅ" => "squat",
"ʆ" => "esh",
"ʇ" => "t",
"ʈ" => "t",
"ʉ" => "u",
"ʊ" => "upsilon",
"ʋ" => "v",
"ʌ" => "v",
"ʍ" => "w",
"ʎ" => "y",
"ʐ" => "z",
"ʑ" => "z",
"ʒ" => "ezh",
"ʓ" => "ezh",
"ʚ" => "e",
"ʞ" => "k",
"ʠ" => "q",
"ʣ" => "dz",
"ʤ" => "dezh",
"ʥ" => "dz",
"ʦ" => "ts",
"ʧ" => "tesh",
"ʨ" => "tc",
"ʩ" => "feng",
"ʪ" => "ls",
"ʫ" => "lz",
"ʮ" => "h",
"ʯ" => "h")
xxls0lw8

xxls0lw86#

我希望这对任何人都有用:https://github.com/infralabs/DiacriticsRemovePHP
此类从包含Latin-1 Supplement、Latin Extended-A和Latin Extended-B特殊字符的字符串中删除变音符号。

用法:

$specialCharacters = "";
$specialCharacters .= "Latin-1 Supplement".PHP_EOL;
$specialCharacters .= "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ".PHP_EOL;
$specialCharacters .= "Latin Extended-A".PHP_EOL;
$specialCharacters .= "ĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſ".PHP_EOL;
$specialCharacters .= "Latin Extended-B".PHP_EOL;
$specialCharacters .= "ƒǺǻǼǽǾǿ".PHP_EOL;
$specialCharacters .= "Latin Extended Additional".PHP_EOL;
$specialCharacters .= "ẀẁẂẃẄẅỲỳ".PHP_EOL;

print "<pre>";
print removeDiacritics($specialCharacters).PHP_EOL;
print "</pre>";

来源:

  • 拉丁文-1补编 *

The following description will be given in the following description:

  • 拉丁扩展-A *

ā

  • 拉丁扩展-B *

ƒǺǻǼǽǾǿ
拉丁语扩展附加
ẀẁẂ ẃ Ẅ ẅỲỳ

结果:

  • 拉丁文-1补编 *

AAAAAAAECEEEEIIIIDNOOOOO× OUUUUYTHssaaaaaaeceeeeiIIIDnoooooo ÷ouuuuythy

  • 拉丁扩展-A *

AaAaAaCcCcCcCcDdDdEeEeEeEeEeGgGgGgGgGgHhHhIIIIIIIIIijJjKkLlLlLlLlLlNnNnNnNnNnNnOoOoOoOEoeRrRrRrRrSsSsSsTtTtTtUuUuUuUuUuUuUuWyyYZzZzZzs

  • 拉丁扩展-B *

fAaAEaeOo
拉丁语扩展附加
wwwwwwWYy

3pmvbmvn

3pmvbmvn7#

function fn_normalize($s) { // Replaces all diacritics/accents
    return transliterator_transliterate('Any-Latin; Latin-ASCII; Lower()', $s);
}

$a = [" Válue1  ", "válue2 ", "válue3", "Café à la carte", "A æ Übérmensch på høyeste nivå! И я люблю PHP! fi"];

$result = array_map('fn_normalize', $a);

var_dump($result);

这对我很有效。您可能需要编辑php.ini的第934行,其中显示
;extension=intl
删除分号。

nwlls2ji

nwlls2ji8#

解决这个问题的最通用的方法是使用Unicode Normalization,因为它可以自动处理所有口音-您不必预先准备列表。我不知道它是否容易在PHP中使用,我在C和Java中使用过它。从本质上讲,首先转换字符串,以便所有重音字符都由常规字符加上所谓的组合变音符号表示(内置或外部库应该提供此功能),然后删除组合变音符号(使用专用库,使用语言提供的字符属性或使用一些正则表达式扩展)。

相关问题