utf8-split.js 945 Bytes
var assert = require('assert')
var saxStream = require('../lib/sax').createStream()

var b = new Buffer('误')

saxStream.on('text', function(text) {
  assert.equal(text, b.toString())
})

saxStream.write(new Buffer('<test><a>'))
saxStream.write(b.slice(0, 1))
saxStream.write(b.slice(1))
saxStream.write(new Buffer('</a><b>'))
saxStream.write(b.slice(0, 2))
saxStream.write(b.slice(2))
saxStream.write(new Buffer('</b><c>'))
saxStream.write(b)
saxStream.write(new Buffer('</c>'))
saxStream.write(Buffer.concat([new Buffer('<d>'), b.slice(0, 1)]))
saxStream.end(Buffer.concat([b.slice(1), new Buffer('</d></test>')]))

var saxStream2 = require('../lib/sax').createStream()

saxStream2.on('text', function(text) {
  assert.equal(text, '�')
});

saxStream2.write(new Buffer('<e>'));
saxStream2.write(new Buffer([0xC0]));
saxStream2.write(new Buffer('</e>'));
saxStream2.write(Buffer.concat([new Buffer('<f>'), b.slice(0,1)]));
saxStream2.end();