wtf-8
wtf-8 is a well-tested WTF-8 encoder/decoder written in JavaScript. WTF-8 is a superset of UTF-8: it can encode/decode any given Unicode code point, including those of (unpaired) surrogates. Here’s an online demo.
Feel free to fork if you see possible improvements!
Installation
Via npm:
npm install wtf-8
Via Bower:
bower install wtf-8
Via Component:
component install mathiasbynens/wtf-8
In a browser:
In Narwhal, Node.js, and RingoJS ≥ v0.8.0:
var wtf8 = ;
In Rhino:
;
Using an AMD loader like RequireJS:
;
API
wtf8.encode(string)
Encodes any given JavaScript string (string
) as WTF-8, and returns the WTF-8-encoded version of the string.
// U+00A9 COPYRIGHT SIGN; see http://codepoints.net/U+00A9wtf8;// → '\xC2\xA9'// U+10001 LINEAR B SYLLABLE B038 E; see http://codepoints.net/U+10001wtf8;// → '\xF0\x90\x80\x81'
wtf8.decode(byteString)
Decodes any given WTF-8-encoded string (byteString
) as WTF-8, and returns the WTF-8-decoded version of the string. It throws an error when malformed WTF-8 is detected.
wtf8;// → '\xA9' wtf8;// → '\uD800\uDC01'// → U+10001 LINEAR B SYLLABLE B038 E
wtf8.version
A string representing the semantic version number.
Support
wtf-8 has been tested in (at least) the latest versions of Chrome, Opera, Firefox, Safari, IE, Node.js, Narwhal, RingoJS, PhantomJS, and Rhino.
Author
Mathias Bynens |
License
wtf-8 is available under the MIT license.