我正在尝试构建一个简单的下拉列表,它将显示特定文件的修订版。从选择的选项中,我使用jQuery获取该修订中包含的当前文本并填充textarea(使用svn cat)。
我的HTML文件中的标题:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
我的shell命令:
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
- 我正在使用file:///协议作为临时措施来调用我的SVN仓库
有趣的是,我的jQuery调用只需要一个标头调用来正确显示字符(shell_exec(svn cat ...)):
header('Content-type: text/html; charset=ISO-8859-1') ;
答案 0 :(得分:1)
根据评论,我在读取XML时删除了utf8_decode函数,并在显示文本时应用了它。
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" />';
现在就像魅力一样。