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):

stringToBytes,
  stringToPDFString,
  stringToUTF16BEString,
} from "../../src/shared/util.js";
describe("util", function () {
  describe("bytesToString", function () {
    it("handles non-array arguments", function () {
      expect(function () {
        bytesToString(null);
      }).toThrow(new Error("Invalid argument for bytesToString"));
    });
    it("handles array arguments with a length not exceeding the maximum", function () {
      expect(bytesToString(new Uint8Array([]))).toEqual("");
      expect(bytesToString(new Uint8Array([102, 111, 111]))).toEqual("foo");
    });
    it("handles array arguments with a length exceeding the maximum", function () {
      const length = 10000; 
      
      const bytes = new Uint8Array(length);
      for (let i = 0; i < length; i++) {
        bytes[i] = "a".charCodeAt(0);
      }
      
      
      const string = Array(length + 1).join("a");
      expect(bytesToString(bytes)).toEqual(string);
    });
  });
  describe("isArrayBuffer", function () {
    it("handles array buffer values", function () {