From 6055134db6882aa861f4f7986d39d4f436523c27 Mon Sep 17 00:00:00 2001 From: Harshitha KP Date: Tue, 14 Jan 2020 02:37:24 -0500 Subject: [PATCH] doc: explain `hex` encoding in Buffer API fixes: https://github.com/nodejs/node/issues/29786 refs: https://github.com/nodejs/node/pull/29792 refs: https://github.com/nodejs/node/issues/24491 PR-URL: https://github.com/nodejs/node/pull/31352 Fixes: https://github.com/nodejs/node/issues/29786 Refs: https://github.com/nodejs/node/pull/29792 Refs: https://github.com/nodejs/node/issues/24491 Reviewed-By: Anna Henningsen Reviewed-By: Rich Trott --- doc/api/buffer.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/doc/api/buffer.md b/doc/api/buffer.md index c94f03fa065a36..f033f8a20ae9dc 100644 --- a/doc/api/buffer.md +++ b/doc/api/buffer.md @@ -203,7 +203,20 @@ The character encodings currently supported by Node.js include: * `'binary'`: Alias for `'latin1'`. -* `'hex'`: Encode each byte as two hexadecimal characters. +* `'hex'`: Encode each byte as two hexadecimal characters. Data truncation + may occur for unsanitized input. For example: + +```js +Buffer.from('1ag', 'hex'); +// Prints , data truncated when first non-hexadecimal value +// ('g') encountered. + +Buffer.from('1a7g', 'hex'); +// Prints , data truncated when data ends in single digit ('7'). + +Buffer.from('1634', 'hex'); +// Prints , all data represented. +``` Modern Web browsers follow the [WHATWG Encoding Standard][] which aliases both `'latin1'` and `'ISO-8859-1'` to `'win-1252'`. This means that while doing