Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including windows-1253 with all npm packages installed. Try it out:

var windows1253 = require("windows-1253")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

windows-1253 v1.0.0

A robust windows-1253 encoder/decoder written in JavaScript.

windows-1253 Build status Code coverage status Dependency status

windows-1253 is a robust JavaScript implementation of the windows-1253 character encoding as defined by the Encoding Standard.

This encoding is known under the following names: cp1253, windows-1253, and x-cp1253.


Via npm:

npm install windows-1253

In a browser:

<script src="windows-1253.js"></script>

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

var windows1253 = require('windows-1253');

In Rhino:


Using an AMD loader like RequireJS:

    'paths': {
      'windows-1253': 'path/to/windows-1253'
  function(windows1253) {



A string representing the semantic version number.


An array of strings, each representing a label for this encoding.

windows1253.encode(input, options)

This function takes a plain text string (the input parameter) and encodes it according to windows-1253. The return value is a ‘byte string’, i.e. a string of which each item represents an octet as per windows-1253.

const encodedData = windows1253.encode(text);

The optional options object and its mode property can be used to set the error mode. For encoding, the error mode can be 'fatal' (the default) or 'html'.

const encodedData = windows1253.encode(text, {
  'mode': 'html'
// If `text` contains a symbol that cannot be represented in windows-1253,
// instead of throwing an error, it will return an HTML entity for the symbol.

windows1253.decode(input, options)

This function takes a byte string (the input parameter) and decodes it according to windows-1253.

const text = windows1253.decode(encodedData);

The optional options object and its mode property can be used to set the error mode. For decoding, the error mode can be 'replacement' (the default) or 'fatal'.

const text = windows1253.decode(encodedData, {
  'mode': 'fatal'
// If `encodedData` contains an invalid byte for the windows-1253 encoding,
// instead of replacing it with U+FFFD in the output, an error is thrown.

For decoding a buffer (e.g. from fs.readFile) use buffer.toString('binary') to get the byte string which decode takes.


windows-1253 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, Edge, and Internet Explorer.


Similar modules for other single-byte legacy encodings are available.


Mathias Bynens


windows-1253 is available under the MIT license.

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free