Skip to content

Latest commit

 

History

History
49 lines (32 loc) · 2.07 KB

README.md

File metadata and controls

49 lines (32 loc) · 2.07 KB

DEPRECATED. Use Buffer instead.

BinString

JavaScript component to convert to/from strings and byte arrays.

AMD/CommonJS compatible.

Usage

This library exposes a single function that takes a data parameter and an options object. Set options.in and options.out to the format of the input and desired output. Possible values include:

  • hex: Hex-encoded string; two hexadecimal characters per byte
  • binary: Binary-encoded string (ASCII-encoded)
  • utf8: Binary-encoded string (UTF8-encoded)
  • bytes: Byte array; an array of numbers, each representing one byte of data
  • buffer: A Node.js native Buffer object
  • base64: A base-64-encoded string (must explicitly set this as input type if used, since it can't be reliabliy duck-typed)

The default encoding for options.out is a buffer (buffer). The input format is duck-typed if it's an Array (bytes) or Buffer (buffer) or Number object. If it's a string, it's interpreted as binary unless it's prefixed by 0x (then it's hex). If options.in is set, it overrides the automatic duck-typing of the input variable.

var conv = require('binstring');

console.dir(conv('hello', { in:'binary' })); // No output encoding specified, defaults to Buffer; output: Buffer([104,101,108,108,111])
console.dir(conv([104,101,108,108,111], { out:'hex' })); // No input encoding specified, auto-detected as Byte Array; output: 68656c6c6f
console.dir(conv('hello', { in:'binary', out:'hex' })); // output: 68656c6c6f

Test

Unit tests are written in Mocha. To run the test suite, checkout the git repository, and from within the base folder run:

$ npm install --dev
$ ./node_modules/mocha/bin/mocha

References on JavaScript UTF-8 forced encoding

(these sources are also included as PDFs in the repo in case the links go dead)

License

(MIT License)

Copyright 2014, Brooks Boyd boydb@midnightdesign.ws