While @punund's answer is correct, it is also possible to make bytes to UTF conversion manually.
In the Unicode char map Chinese characters occupy 3 bytes in the range 00000800 — 0000FFFF, hence your string of bytes should be grouped by three and transformed to the real UTF characters.
Here is one possible solution:
var str = '\\xe8\\xac\\x9b\\xe5\\x91\\xa2D\\xe3\\x80\\x82',
result = str.replace(/(\\{1,2}x[0-9a-f]{2}){3}/g, function(c) {
var u = eval('"' + c + '"');
return String.fromCharCode(
((u.charCodeAt(0) & 15) << 12) |
((u.charCodeAt(1) & 63) << 6) |
(u.charCodeAt(2) & 63));
});
console.log(result); // "講呢D。"
N.B.: while using eval is not recommended, in the provided example it is completely harmless.