Как мне преобразовать этот один элемент массива в 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 (имейте в виду, что это не сработает, докажите)