2009-07-10 1 views
0
str_replace('Ê','',$line); 

Не работает. Есть ли какая-то специальная строка, которая представляет это?Как заменить Ê на '? В php?

+0

Он может быть в другом наборе символов. К сожалению, у меня нет PHP, чтобы тестировать все, поэтому я не могу попробовать. – Powerlord

ответ

3

Вы должны рассмотреть кодировку строки, которую вы хотите манипулировать. Если это не закодировано с тем же символьным кодированием, что и файл, который вы объявили, строка, указанная выше, вам нужно преобразовать оба кодирования.

Наиболее распространенная ошибка заключается в том, что либо данные, либо файл закодированы в UTF-8, а другой в ISO 8859-1.

+1

У меня была догадка, что это было что-то вроде этого, наконец, время для меня, чтобы волноваться/узнать о кодировках. –

+1

$ line = str_replace ('Ê', '', mb_convert_encoding ($ line, "UTF-8")); –

0

Попробуйте использовать preg_replace:

$line = preg_replace('/Ê/ui', '', $line); 
2

Это не ясно, если вы это знаете, но str_replace не работает «на месте», она возвращает новую строку, так что, возможно, все, что вам действительно нужно было

$line=str_replace('Ê','',$line); 

Другая возможность заключается в том, что вы ищете в Unicode, объединяющем диакритику, которая на самом деле является двумя символами unicode - E и circumflex diacritic.

+0

Вот как выглядит мой код, на самом деле, наверное, я должен был оставить строку $ на другой стороне. –

0

я должен был сначала преобразовать строку в UTF-8.

mb_convert_encoding($line, "UTF-8") 

Так код, который я закончил с это:

$line = str_replace('Ê','', mb_convert_encoding($line, "UTF-8")); 

ответил на мой собственный вопрос просто, чтобы получить «разрешение» вверх, а не в комментарии. Спасибо, Гумбо.