Attach (recommended) or Link to PDF file here:

[Actually downloaded from <https://github.com/pdf-association/pdf20examples/raw/master/pdf20-utf8-test.pdf>](https://github.com/mozilla/pdf.js/files/7871477/pdf20-utf8-test.pdf)


Configuration:
- Web browser and its version: _Firefox 96_.
- Operating system and its version: _Windows 7_.
- PDF.js version: the one that comes with _Firefox 96_.
- Is a browser extension: I think so.

Steps to reproduce the problem:
1. Open the file metadata, bookmarks and layers are displayed wrong.
2. The explanation on how this works for PDF-2 seems to be https://www.pdfa.org/understanding-utf-8-in-pdf-2-0/. 

What is the expected behavior? (add screenshot)

Right character display.

What went wrong? (add screenshot)

Link to a viewer (if hosted on a site other than mozilla.github.io/pdf.js or as Firefox/Chrome extension):

expect(function () {
        stringToBytes(null);
      }).toThrow(new Error("Invalid argument for stringToBytes"));
    });
    it("handles string arguments", function () {
      expect(stringToBytes("")).toEqual(new Uint8Array([]));
      expect(stringToBytes("foo")).toEqual(new Uint8Array([102, 111, 111]));
    });
  });
  describe("stringToPDFString", function () {
    it("handles ISO Latin 1 strings", function () {
      const str = "\x8Dstring\x8E";
      expect(stringToPDFString(str)).toEqual("\u201Cstring\u201D");
    });
    it("handles UTF-16 big-endian strings", function () {
      const str = "\xFE\xFF\x00\x73\x00\x74\x00\x72\x00\x69\x00\x6E\x00\x67";
      expect(stringToPDFString(str)).toEqual("string");
    });
    it("handles UTF-16 little-endian strings", function () {
      const str = "\xFF\xFE\x73\x00\x74\x00\x72\x00\x69\x00\x6E\x00\x67\x00";
      expect(stringToPDFString(str)).toEqual("string");
    });
    it("handles empty strings", function () {
      
      const str1 = "";
      expect(stringToPDFString(str1)).toEqual("");
      
      const str2 = "\xFE\xFF";
      expect(stringToPDFString(str2)).toEqual("");