【发布时间】:2011-07-24 10:10:27
【问题描述】:
我有a PHP 5.3 script 显示我网站的用户,并想用它的旧名称替换某个俄罗斯城市(在 PostgreSQL 8.4.7 数据库 + CentOS 5.5/64 位 Linux 中以 UTF8 存储)(它是内部人员)笑话):
preg_replace('/Волгоград/iu', 'Сталинград', $city);
不幸的是,这仅适用于完全匹配:Волгоград。
这不适用于其他情况,例如 ВОЛГОГРАД 或 волгоград。
如果我将源代码修改为
preg_replace('/[Вв]олгоград/iu', 'Сталинград', $city);
那么它将捕获上面的第二种情况。
有人知道它发生了什么以及如何解决它(假设我不想为每个字母写[Xx])?
谢谢! 亚历克斯
更新:
# rpm -qa|grep php
php53-bcmath-5.3.3-1.el5
php53-gd-5.3.3-1.el5
php53-common-5.3.3-1.el5
php53-pdo-5.3.3-1.el5
php53-mbstring-5.3.3-1.el5
php53-xml-5.3.3-1.el5
php53-5.3.3-1.el5
php53-cli-5.3.3-1.el5
php53-pgsql-5.3.3-1.el5
# rpm -qa|grep pcre
pcre-6.6-2.el5_1.7
【问题讨论】:
标签: php utf-8 internationalization preg-replace