Почему PHP str_replace () вызывает проблемы с кодировкой? - PullRequest
3 голосов
/ 03 апреля 2012

У меня есть строка, которую я передаю через str_replace(), и, кажется, что она влияет на кодировку, которую я не могу понять.

пример:

$str = "joined nearly 500 of the world’s investors .."; //shorted exceprt
$str = str_replace(' ', ' ', $str);
var_dump($str);

дает:

joined nearly 500 of the worldÂ’s investors

есть идеи как это предотвратить?

Ответы [ 3 ]

2 голосов
/ 03 апреля 2012

На ваш вклад у вас есть умная цитата, которая не в его сущности!Кроме того, вы, вероятно, хотите использовать UTF-8, поэтому попробуйте это:

$str = "joined nearly 500 of the world’s investors .."; //shorted exceprt
$str = htmlentities($str, ENT_QUOTES, "UTF-8");
$str = str_replace(' ', ' ', $str);
var_dump($str);
0 голосов
/ 21 апреля 2012

См. Этот вопрос и наиболее приемлемый ответ от BalusC :

Проблема парсинга PHP - и

Это точный ответ, какрешить вашу проблему.

0 голосов
/ 03 апреля 2012

Это не имеет ничего общего с str_replace или PHP, а скорее с кодировкой кодировки HTML / браузера.

Вы можете сделать (в PHP, прежде всего):

header('Content-Type: text/html; charset=utf-8');

Или (в разделе head вашего HTML - здесь HTML 5):

<meta charset="utf-8">

Другой альтернативой может быть изменение кодировки по умолчанию в вашем браузере.

...