diff --git a/lib/Diff/Renderer/Html/Array.php b/lib/Diff/Renderer/Html/Array.php index 521601c6..11b33d22 100644 --- a/lib/Diff/Renderer/Html/Array.php +++ b/lib/Diff/Renderer/Html/Array.php @@ -174,6 +174,13 @@ private function getChangeExtent($fromLine, $toLine) */ protected function formatLines($lines) { + foreach($lines as &$line) { + $coding = mb_detect_encoding($line, array("ASCII", "UTF-8", "GB2312", "GBK", "BIG5"), true); + if ($coding == "") + $line = ""; + else if ($coding != "UTF-8") + $line = mb_convert_encoding($line, 'UTF-8', $coding); + } $lines = array_map(array($this, 'ExpandTabs'), $lines); $lines = array_map(array($this, 'HtmlSafe'), $lines); foreach($lines as &$line) { diff --git a/lib/Diff/Renderer/Html/SideBySide.php b/lib/Diff/Renderer/Html/SideBySide.php index 307af1c3..c7299ee2 100644 --- a/lib/Diff/Renderer/Html/SideBySide.php +++ b/lib/Diff/Renderer/Html/SideBySide.php @@ -126,7 +126,7 @@ public function render() $changedLine = ' '; } else { - $toLine = $change['base']['offset'] + $no + 1; + $toLine = $change['changed']['offset'] + $no + 1; $changedLine = ''.$change['changed']['lines'][$no].''; } $html .= ''.$toLine.'';