Ошибка при попытке проанализировать XML из команды журнала SVN - PullRequest
2 голосов
/ 15 ноября 2010

Я пытаюсь создать простой выпадающий список, который будет отображать ревизии определенного файла. Из выбранной опции я использую jQuery для получения текущего текста, содержащегося в этой ревизии, и заполняю текстовое поле (используя svn cat).

Заголовок в моем HTML-файле:

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

Моя команда оболочки:

svn log --xml "file:///C:/Documents and Settings/username_here/Desktop/svnrepo/Web/trunk/my_file.php"

вызов синтаксического анализа XML:

$xmlData = simplexml_load_string(utf8_decode(trim(shell_exec($cmd))));

В этот момент я получаю эту ошибку:

Неправильный ввод UTF-8, укажите кодировка! Байты: 0xE9 0x20 0xE7 0x61

-Я использую функцию utf8_decode, чтобы помочь правильно отображать символы. Например, «é» отображается как «Ã ©»

-Если я изменил метатег на utf-8, он отображается правильно. Однако мне нужно иметь ISO-8859-1 в соответствии с правилами организационного набора

-Я звоню в репозиторий SVN, используя протокол file: /// в качестве временной меры на данный момент

Достаточно забавно, мой вызов jQuery требовал только вызова заголовка, чтобы правильно отображать символы (shell_exec (svn cat ...)):

header('Content-type: text/html; charset=ISO-8859-1') ;

1 Ответ

1 голос
/ 15 ноября 2010

В комментариях я удалил функцию utf8_decode при чтении в XML и применил ее при отображении текста.

echo '<select id="selID">';
foreach ($xmlData->logentry as $entry){
 echo utf8_decode('<option value="'.$entry['revision'].'">rev '.$entry['revision'].' by '.$entry->author.' @ '.substr($entry->date,0,19).' '.$entry->msg.'</option>');
}
echo '</select><input type="button" id="svn_select" value="Load revision" />';

Теперь работает как шарм.

...