Bird
Raised Fist0
Node.jsframework~20 mins

Buffer to string conversion in Node.js - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Buffer Conversion Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
What is the output of this Node.js Buffer to string conversion?
Consider the following code snippet that converts a buffer to a string. What will be printed to the console?
Node.js
const buf = Buffer.from([72, 101, 108, 108, 111]);
console.log(buf.toString());
A"undefined"
B"[72,101,108,108,111]"
C"Buffer(5)"
D"Hello"
Attempts:
2 left
💡 Hint
Think about what the buffer contains and what toString() does by default.
Predict Output
intermediate
2:00remaining
What does this code output when specifying encoding?
What will this code print to the console?
Node.js
const buf = Buffer.from('68656c6c6f', 'hex');
console.log(buf.toString('utf8'));
A"hello"
B"68656c6c6f"
C"undefined"
D"\u6865\u6c6c\u6f"
Attempts:
2 left
💡 Hint
The buffer is created from hex values representing ASCII characters.
component_behavior
advanced
2:00remaining
What happens if you convert a buffer with invalid UTF-8 bytes to string?
Given this buffer with invalid UTF-8 bytes, what will be the output of toString()?
Node.js
const buf = Buffer.from([0xff, 0xfe, 0xfd]);
console.log(buf.toString('utf8'));
A"\xff\xfe\xfd"
BThrows a SyntaxError
C"���"
D"" (empty string)
Attempts:
2 left
💡 Hint
Invalid UTF-8 bytes are replaced with a special character when converted to string.
📝 Syntax
advanced
2:00remaining
Which option correctly converts a buffer to a base64 string?
Select the code snippet that correctly converts a buffer to a base64 encoded string.
Aconst b64 = buf.toString('base64');
Bconst b64 = buf.encode('base64');
Cconst b64 = Buffer.toString(buf, 'base64');
Dconst b64 = buf.toBase64();
Attempts:
2 left
💡 Hint
Check the Buffer API for the correct method and parameter to convert to base64.
🔧 Debug
expert
3:00remaining
Why does this buffer to string conversion produce unexpected output?
This code is intended to convert a buffer to a UTF-8 string, but the output is garbled. What is the most likely cause?
Node.js
const buf = Buffer.from('c3a9', 'utf8');
console.log(buf.toString());
ABuffer.from() cannot accept strings, only arrays
BThe input string is hex but encoded as UTF-8, causing wrong bytes in buffer
CtoString() requires an encoding parameter to decode properly
DThe buffer is empty, so output is empty string
Attempts:
2 left
💡 Hint
Consider what the input string represents and how Buffer.from interprets it with the given encoding.

Practice

(1/5)
1. What does the toString() method do when called on a Node.js Buffer?
easy
A. Changes the buffer data to uppercase letters
B. Deletes the buffer data permanently
C. Creates a new buffer with double the size
D. Converts the raw buffer data into a readable string using an encoding

Solution

  1. Step 1: Understand Buffer data

    A Buffer holds raw binary data that is not human-readable.
  2. Step 2: Role of toString()

    The toString() method converts this raw data into a readable string using a specified encoding, defaulting to UTF-8.
  3. Final Answer:

    Converts the raw buffer data into a readable string using an encoding -> Option D
  4. Quick Check:

    Buffer.toString() = readable string [OK]
Hint: Remember: toString() makes buffer data human-readable [OK]
Common Mistakes:
  • Thinking toString() deletes or modifies buffer data
  • Confusing buffer size changes with toString()
  • Assuming toString() changes letter case
2. Which of the following is the correct syntax to convert a Buffer named buf to a string using ASCII encoding?
easy
A. buf.toString('ascii')
B. buf.toString(ascii)
C. buf.toString[ascii]
D. buf.toString{ascii}

Solution

  1. Step 1: Check method syntax

    The toString() method takes an optional encoding as a string argument inside parentheses.
  2. Step 2: Validate correct usage

    Passing the encoding as a string literal like 'ascii' inside parentheses is correct syntax.
  3. Final Answer:

    buf.toString('ascii') -> Option A
  4. Quick Check:

    toString('encoding') uses quotes and parentheses [OK]
Hint: Encoding must be a string inside parentheses [OK]
Common Mistakes:
  • Omitting quotes around encoding
  • Using square or curly brackets instead of parentheses
  • Passing encoding as a variable without quotes
3. What will be the output of this code?
const buf = Buffer.from('48656c6c6f', 'hex');
console.log(buf.toString());
medium
A. 48656c6c6f
B. Hello
C. Error: Invalid buffer
D. undefined

Solution

  1. Step 1: Create buffer from hex string

    The buffer contains bytes representing the hex values for characters: 48='H', 65='e', 6c='l', 6c='l', 6f='o'.
  2. Step 2: Convert buffer to string

    Calling toString() without encoding defaults to UTF-8, decoding bytes to 'Hello'.
  3. Final Answer:

    Hello -> Option B
  4. Quick Check:

    Buffer.from(hex).toString() = decoded text [OK]
Hint: Hex buffer toString() shows decoded text, not hex [OK]
Common Mistakes:
  • Expecting output to be the hex string itself
  • Assuming toString() throws error on hex buffers
  • Confusing buffer content with string representation
4. Identify the error in this code snippet:
const buf = Buffer.from('hello');
const str = buf.toString(utf8);
console.log(str);
medium
A. toString() cannot convert buffers
B. Buffer.from() requires encoding argument
C. utf8 should be a string: 'utf8'
D. console.log() is missing parentheses

Solution

  1. Step 1: Check toString() argument

    The encoding argument must be a string literal, so it should be 'utf8' with quotes.
  2. Step 2: Identify error cause

    Passing utf8 without quotes causes a ReferenceError because utf8 is undefined as a variable.
  3. Final Answer:

    utf8 should be a string: 'utf8' -> Option C
  4. Quick Check:

    Encoding must be quoted string [OK]
Hint: Always quote encoding names in toString() [OK]
Common Mistakes:
  • Forgetting quotes around encoding
  • Thinking Buffer.from() always needs encoding
  • Misreading console.log syntax
5. You have a Buffer buf containing UTF-8 encoded text. How do you convert only the first 5 bytes to a string?
hard
A. buf.toString('utf8', 0, 5)
B. buf.toString(0, 5)
C. buf.toString('utf8').slice(0, 5)
D. buf.toString(5)

Solution

  1. Step 1: Understand toString() parameters

    The toString() method can take encoding, start, and end byte positions.
  2. Step 2: Use correct parameter order

    To convert first 5 bytes, call toString('utf8', 0, 5) specifying encoding and byte range.
  3. Final Answer:

    buf.toString('utf8', 0, 5) -> Option A
  4. Quick Check:

    toString(encoding, start, end) slices buffer [OK]
Hint: Use toString with encoding and byte range [OK]
Common Mistakes:
  • Omitting encoding argument
  • Using slice on string instead of buffer
  • Passing wrong parameter order