Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


A robust & character encoding–agnostic JavaScript implementation of the `Quoted-Printable` content transfer encoding as defined by RFC 2045.

Subscribe to updates I use quoted-printable

Statistics on quoted-printable

Number of watchers on Github 44
Number of open issues 1
Average time to close an issue about 3 hours
Main language JavaScript
Open pull requests 0+
Closed pull requests 1+
Last commit over 3 years ago
Repo Created almost 6 years ago
Repo Last Updated about 2 years ago
Size 33 KB
Organization / Authormathiasbynens
Page Updated
Do you use quoted-printable? Leave a review!
View quoted-printable activity
View on github
Fresh, new opensource launches πŸš€πŸš€πŸš€
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating quoted-printable for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

quoted-printable Build status Code coverage status Dependency status

quoted-printable is a character encodingagnostic JavaScript implementation of the Quoted-Printable content transfer encoding as defined by RFC 2045. It can be used to encode plaintext to its Quoted-Printable encoding, or the other way around (i.e. decoding). Heres an online demo using the UTF-8 character encoding.


Via npm:

npm install quoted-printable

Via Bower:

bower install quoted-printable

Via Component:

component install mathiasbynens/quoted-printable

In a browser:

<script src="quoted-printable.js"></script>

In Node.js, io.js, Narwhal, and RingoJS:

var quotedPrintable = require('quoted-printable');

In Rhino:


Using an AMD loader like RequireJS:

    'paths': {
      'quoted-printable': 'path/to/quoted-printable'
  function(quotedPrintable) {



A string representing the semantic version number.


This function takes an encoded byte string (the input parameter) and Quoted-Printable-encodes it. Each item in the input string represents an octet as per the desired character encoding. Heres an example that uses UTF-8:

var utf8 = require('utf8');

//  'foo=3Dbar'

//  'I=C3=B1t=C3=ABrn=C3=A2ti=C3=B4n=C3=A0liz=C3=A6ti=C3=B8n=E2=98=83=F0=9F=92=\r\n=A9'


This function takes a string of text (the text parameter) and Quoted-Printable-decodes it. The return value is a byte string, i.e. a string of which each item represents an octet as per the character encoding thats being used. Heres an example that uses UTF-8:

var utf8 = require('utf8');

//  'foo=bar'

//  'Itrntinliztin'

Using the quoted-printable binary

To use the quoted-printable binary in your shell, simply install quoted-printable globally using npm:

npm install -g quoted-printable

After that, youll be able to use quoted-printable on the command line. Note that while the quoted-printable library itself is character encodingagnostic, the command-line tool applies the UTF-8 character encoding on all input.

$ quoted-printable --encode 'foo=bar'

$ quoted-printable --decode 'foo=3Dbar'

Read a local text file, Quoted-Printable-encode it, and save the result to a new file:

$ quoted-printable --encode < foo.txt > foo-quoted-printable.txt

Or do the same with an online text file:

$ curl -sL '' | quoted-printable --encode > quoted-printable.txt

Or, the opposite read a local file containing a Quoted-Printable-encoded message, decode it back to plain text, and save the result to a new file:

$ quoted-printable --decode < quoted-printable.txt > original.txt

See quoted-printable --help for the full list of options.


quoted-printable is designed to work in at least Node.js v0.10.0, io.js v1.0.0, Narwhal 0.3.2, RingoJS 0.8-0.11, PhantomJS 1.9.0, Rhino 1.7RC4, as well as old and modern versions of Chrome, Firefox, Safari, Opera, and Internet Explorer.

Unit tests & code coverage

After cloning this repository, run npm install to install the dependencies needed for development and testing. You may want to install Istanbul globally using npm install istanbul -g.

Once thats done, you can run the unit tests in Node using npm test or node tests/tests.js. To run the tests in Rhino, Ringo, Narwhal, and web browsers as well, use grunt test.

To generate the code coverage report, use grunt cover.


Mathias Bynens


quoted-printable is available under the MIT license.

quoted-printable open issues Ask a question     (View All Issues)
  • over 3 years quotedPrintable.encode should accept Uint8Array as input parameter
quoted-printable questions on Stackoverflow (View All Questions)
  • Decoding a "quoted-printable" string in Java
  • Simple web server: form post data is encoded in quoted-printable
  • Encode quoted-printable email in R
  • How do I fix annoying quoted-printable emails sent with PHP?
  • Decode quoted printable correct
  • Decoding quoted-printable messages in Swift
  • Consecutive control characters in Quoted Printable not decoding correctly
  • how to send an email with quoted-printable transfer-encoding and utf-8 content-encoding?
  • Java Mail: force "Content-Transfer-Encoding" to be "quoted-printable"
  • What if the mail text is not quoted-printable
  • UTF-8 quoted-printable, multiline subject for Thunderbird?
  • JavaMail - Quoted printable remove . (dot) on new line
  • How to prevent HTML Email from having quoted printable when sending with C# using System.Net.Mail.MaiMessage
  • how to decode quoted-printable using java
  • Set Content-Transfer-Encoding to Quoted-printable with .NET MailMessage
  • Using a Java SOAP service breaks javax.mail's quoted printable mail encapsulation
  • Rails Mailer quoted-printable replace = by =3D
  • rspec have_link doesn't match action-mailer view when Content-Transfer-Encoding: quoted-printable
  • PHP Quoted-printable Email and Apple Mail App
  • Why isn't Gmail using quoted-printable encoding?
  • Unknown encoding quoted/printable while reading email with Java mail API
  • In quoted-printable, what constitutes a line break according to the 76 character rule?
  • How can I decode quoted-printable content to normal strings in node.js?
  • Turn off quoted-printable encoding in sendmail
  • Javascript decode =C3=B3 quoted printable
  • What is "=C2=A0" in MIME encoded, quoted-printable text?
  • C#: Class for decoding Quoted-Printable encoding?
  • Decoding Base64 / Quoted Printable encoded UTF8 string
  • Java: Encode String in quoted-printable
  • "quoted printable" or "7/8 bit" as transfer-encoding when send email
quoted-printable list of languages used
Other projects in JavaScript