diff --git a/lib/utils/escape-value.js b/lib/utils/escape-value.js index d9ccf98..ebc6afd 100644 --- a/lib/utils/escape-value.js +++ b/lib/utils/escape-value.js @@ -58,9 +58,7 @@ module.exports = function escapeValue (value) { if (charHex >= 0xe0 && charHex <= 0xef) { // Represents the first byte in a 3-byte UTF-8 character. - escaped.push(toEscapedHexString(charHex)) - escaped.push(toEscapedHexString(toEscape[i + 1])) - escaped.push(toEscapedHexString(toEscape[i + 2])) + escaped.push(Buffer.from([charHex, toEscape[i + 1], toEscape[i + 2]], 'utf8').toString()) i += 3 continue } diff --git a/lib/utils/escape-value.test.js b/lib/utils/escape-value.test.js index 9f7ba71..1191f97 100644 --- a/lib/utils/escape-value.test.js +++ b/lib/utils/escape-value.test.js @@ -47,7 +47,11 @@ tap.test('2-byte utf-8', t => { tap.test('3-byte utf-8', t => { t.test('₠', async t => { - t.equal(escapeValue('₠'), '\\e2\\82\\a0') + t.equal(escapeValue('₠'), '₠') + }) + + t.test('中文', async t => { + t.equal(escapeValue('中文'), '中文') }) t.end()