我正在寻找将āžšķūņrūķīš等字符转换为 azskunrukis 的方法。换句话说,用 a 替换ā,用 z 替换ž等。有没有内置的东西,或者我应该创建自己的“来自符号”的“库”?
答案 0 :(得分:5)
看看iconv's transliteration capabilities:
<?php
$text = "This is the Euro symbol '€'.";
echo 'Original : ', $text, PHP_EOL;
echo 'TRANSLIT : ', iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL;
echo 'IGNORE : ', iconv("UTF-8", "ISO-8859-1//IGNORE", $text), PHP_EOL;
echo 'Plain : ', iconv("UTF-8", "ISO-8859-1", $text), PHP_EOL;
?>
以上示例将输出类似于:
的内容原文:这是欧元符号'€' TRANSLIT:这是欧元符号'EUR' IGNORE:这是欧元符号'' 平原:
注意:iconv():在第7行的。\ iconv-example.php中检测到输入字符串中的非法字符 这是欧元符号'
您的示例文本可以使用以下内容进行音译:
$translit = iconv('UTF-8', 'US-ASCII//TRANSLIT', 'āžšķūņrūķīš');
以下是您提供的文字示例:http://ideone.com/MJHvf
答案 1 :(得分:1)
我不确定任何直接执行此操作的函数,但是有一些转换表的实现在strtr
's documentation page的注释中执行类似的操作。他们最终使用的表格直接将每个字符翻译成其等价物,即“ž”=&gt; “Z”。
答案 2 :(得分:1)
作为iconv
的替代方案,您可以查看国际/地区扩展的Normalize
函数(如果有)。