почему str_replace в php портит строки специальными символами - PullRequest
0 голосов
/ 05 октября 2009

почему php's str_replace и многие другие строковые функции портят строки специальными символами ('é' 'à' ..)? и как решить эту проблему?

Ответы [ 2 ]

5 голосов
/ 05 октября 2009

str_replace не поддерживает многобайтовые (Unicode). используйте вместо этого соответствующие функции mb_ *

на вашем месте mb_ereg_replace звучит как правильный вариант. Вы также можете просто использовать функции регулярного выражения PCRE и указать флаг X

1 голос
/ 05 октября 2009

PHP не разрабатывался с нуля для поддержки UTF8. Может быть полезно вместо указания символьного литерала указывать ссылку на сущность / шестнадцатеричный код этого в вашей замене, например, \ x3094, и заменять его, я думаю, что он поддерживается более последовательно.

Хотя это поможет увидеть вашу прямую проблему под рукой, с большим количеством кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...