php - 规范化多字节 php 字符串中的整数值

标签 php unicode utf-8 internationalization multibyte

假设我有 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/

相关文章:

php - 锁定 PHP 以实现关键部分 - MySQL 的意外结果

sql-server - 未排序的 Unicode (UTF-16) 数据如何存储在 varchar 列中?

Python - Map/Reduce - 如何在使用 DISCO 计数词示例中读取 JSON 特定字段

email - 从右到左的电子邮件

php - MySQL 查询中表名周围反引号的重要性

php - 创建 PHP 静态函数时,将静态放在第一位或第二位

java - 如何在 Ruby 中访问上传的文件

mysql - UTF-8字符有问题;我看到的不是我存储的

c++ - Bison 可以解析 UTF-8 字符吗?

php - Mysql存储不正确的编码字符