utf16.js 858 B

123456789101112131415161718192021222324
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.utf16 = void 0;
  4. exports.encode = encode;
  5. exports.decode = decode;
  6. const index_js_1 = require("../bytes/index.js");
  7. function encode(text, options = {}) {
  8. const result = new ArrayBuffer(text.length * 2);
  9. const view = new DataView(result);
  10. for (let i = 0; i < text.length; i++) {
  11. view.setUint16(i * 2, text.charCodeAt(i), options.littleEndian ?? false);
  12. }
  13. return new Uint8Array(result);
  14. }
  15. function decode(data, options = {}) {
  16. const buffer = (0, index_js_1.toArrayBuffer)(data);
  17. const view = new DataView(buffer);
  18. let result = "";
  19. for (let i = 0; i < buffer.byteLength; i += 2) {
  20. result += String.fromCharCode(view.getUint16(i, options.littleEndian ?? false));
  21. }
  22. return result;
  23. }
  24. exports.utf16 = { encode, decode };