假设我有 UTF-8 字符串0123456789०१२३४५६७८९০১২৩৪৫৬৭৮৯
。我想将所有非 ASCII 整数值替换为其等效的 ASCII 值,以便提供的字符串将变为 012345678901234567890123456789
。
我该如何去做呢?
最佳答案
如果您的 PHP 有 php_intl 扩展,您可以使用 Transliterate 类。
if (version_compare(PHP_VERSION, '5.4.0', '<')) {
exit ('Transliterator is available on PHP 5.4.0 or later.');
}
if (!class_exists('Transliterator')) {
exit ('You need to install php_intl extension.');
}
$any2latin = Transliterator::create("Any-Latin");
$original = "0123456789०१२३४५६७८९০১২৩৪৫৬৭৮৯";
echo $any2latin->transliterate($original), "\n";
我明白了,
012345678901234567890123456789
对于需要规范化特定语言的情况,我在下面留下了初始代码。
$devanagari2latin = Transliterator::create("Devanagari-Latin");
$bengali2latin = Transliterator::create("Bengali-Latin");
$original = "0123456789०१२३४५६७८९০১২৩৪৫৬৭৮৯";
echo $bengali2latin->transliterate($devanagari2latin->transliterate($original)), "\n";
关于php - 规范化多字节 php 字符串中的整数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17796549/