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.' | ';