diff --git a/src/services/import/samples/UTF-16LE Text Note.md b/src/services/import/samples/UTF-16LE Text Note.md new file mode 100644 index 000000000..a0fec98d6 Binary files /dev/null and b/src/services/import/samples/UTF-16LE Text Note.md differ diff --git a/src/services/import/single.spec.ts b/src/services/import/single.spec.ts index 6e35ebe1a..74b4746ab 100644 --- a/src/services/import/single.spec.ts +++ b/src/services/import/single.spec.ts @@ -72,4 +72,10 @@ describe("processNoteContent", () => { expect(importedNote.mime).toBe("text/html"); expect(importedNote.getContent().toString()).toBe("

Plain text goes here.

"); }); + + it("supports markdown note with UTF-16", async () => { + const { importedNote } = await testImport("UTF-16LE Text Note.md", "text/markdown"); + expect(importedNote.mime).toBe("text/html"); + expect(importedNote.getContent().toString()).toBe("

Hello world

\n

Plain text goes here.

\n"); + }); }) diff --git a/src/services/import/single.ts b/src/services/import/single.ts index f55c84bfc..85bd3d48a 100644 --- a/src/services/import/single.ts +++ b/src/services/import/single.ts @@ -127,7 +127,7 @@ function convertTextToHtml(text: string) { function importMarkdown(taskContext: TaskContext, file: File, parentNote: BNote) { const title = getNoteTitle(file.originalname, !!taskContext.data?.replaceUnderscoresWithSpaces); - const markdownContent = file.buffer.toString("utf-8"); + const markdownContent = processStringOrBuffer(file.buffer); let htmlContent = markdownService.renderToHtml(markdownContent, title); if (taskContext.data?.safeImport) {