странные символы пробела - utf8 PHP - PullRequest
3 голосов
/ 31 августа 2011

У меня странные пробелы в строке, пробелы не являются пробелами. У меня проблема с преобразованием их с помощью регулярных выражений и str_replace, т.е.

echo str_replace(' ','_',$string);

есть идеи как это исправить? utf8_encode также не работает, также regex \ s, когда вы копируете этот текст в Notepad ++, он отображается как

Ê    

вместо пробела.

Чего я хочу добиться, так это запустить это регулярное выражение

preg_replace('/[^a-z0-9 ]/i','',$string) 

но поскольку эти «пробелы» не являются пробелами, они также удаляются.

1 Ответ

3 голосов
/ 01 сентября 2011

Мне кажется, я получил его с сайта PHP:

Вы можете спросить, почему

trim(html_entity_decode(' '));    

не сводит строку к пустой строке, потому что сущность '' - это не код ASCII 32 (который удаляется с помощью trim ()), а код ASCII 160 (0xa0) в наборе символов ISO 8859-1 по умолчанию.

...