Как мне преобразовать этот один элемент массива в utf-8?

Использование Zend _gdata. По какой-то причине в последнее время строка $when больше не является utf-8. Мне нужно преобразовать его в UTF-8. Все остальные поля работают нормально.

   foreach ($feed as $event) { //iterating through all events

      $contentText = stripslashes($event->content->text); //striping any escape character
      $contentText = preg_replace('/\<br \/\>[\n\t\s]{1,}\<br \/\>/','<br />',stripslashes($event->content->text)); //replacing multiple breaks with a single break
      $contentText = explode('<br />',$contentText); //splitting data by break tag

      $eventData = filterEventDetails($contentText);
      $when = $eventData['when'];
      $where = $eventData['where'];
      $duration = $eventData['duration'];
      $title = stripslashes($event->title);
      echo '<li class="pastShows">' . $when . " - " . $title . ", " . $where . '</li>';
   }

Как мне сделать $when UTF-8? Спасибо!

2 ответа

Решение

В зависимости от того, какую кодировку использует эта строка, вы должны иметь возможность кодировать ее в UTF-8, используя одну из следующих функций:

  • utf8_encode()
  • iconv()


Например:

$when = utf8_encode($eventData['when']);

Или же:

$when = iconv('ISO-8859-1', 'UTF-8', $eventData['when']);

Если строка написана на Latin1, вы можете просто делать то, что предлагает Паскаль.

В противном случае вам нужно выяснить, какая это кодировка. Для этого проверьте настройки php.ini или попробуйте обнаружить его с помощью mb_detect_encoding (имейте в виду, что это не сработает, докажите)

Другие вопросы по тегам