Как заменить Ê на '' в php? - PullRequest
0 голосов
/ 10 июля 2009
str_replace('Ê','',$line);

не работает. Есть ли какая-то специальная строка, которая представляет это?

Ответы [ 5 ]

3 голосов
/ 10 июля 2009

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

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

2 голосов
/ 10 июля 2009

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

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

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

0 голосов
/ 10 июля 2009

Мне пришлось сначала преобразовать строку в UTF-8.

mb_convert_encoding($line, "UTF-8")

Итак, код, с которым я закончил:

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

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

0 голосов
/ 10 июля 2009

Я думаю, что это многобайтовый символ, поэтому попробуйте mb functions

0 голосов
/ 10 июля 2009

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

$line = preg_replace('/Ê/ui', '', $line);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...