Вьетнамские просканированные символы не отображаются так, как в Интернете - PullRequest
0 голосов
/ 31 января 2019

Я сканирую некоторые чтения из Интернета и сохраняю их как utf8 txt:

  const result = await page.evaluate(() => {
    const title = document.querySelector('#chapter-title').innerText;
    const content = document.querySelector('#chapter-content').innerText;
    return title + "\n\n" + content
  })

  fs.writeFileSync(`./results/chapter${chapter}.txt`, `${result}`, 'utf8');

Но некоторые символы (в основном акценты) в их оригинальной (HTML) форме отличаются от того, что они отображаются в браузере, и портят мое приложение для чтения.

Ниже приведен скриншот того же текста: первая строка - результат сканирования, вторая строка - открытие страницы в браузере и выбор + копирование текста вручную:

enter image description here

Кажется, браузеры как-то разумно «исправили» этот текст и превратили его в символ, доступный в шрифте.

Поскольку я точно не знаю, что произошло, мой поискне может привести к какому-либо результату.

Что случилось, и могу ли я отформатировать просканированный текст в читаемую форму?

1 Ответ

0 голосов
/ 31 января 2019

Я решил проблему, используя String.Prototype.Normalize () .

Символы из исходного HTML-кода представляли собой смесь NFC и NFD.Кажется, моим текстовым редакторам не удалось объединить символы с двумя или более акцентами, что привело к появлению отдельных акцентов / квадратовИспользуя normalize (), вы нормализовали их все до NFC, решив проблему.

(Вопрос с самостоятельным ответом не может быть принят в течение 2 дней, не стесняйтесь разрабатывать или добавлять ссылку / комментарий по этому вопросу, как вы видитеподходит)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...