Ошибочный вывод: “…??” и другие “заглушки”

Если в консоли, логе или файле появляются странные символы вроде “…??”, это почти всегда результат несоответствия кодировки либо повреждённого потока данных.Ниже несколько способов разобраться и исправить ситуацию.

1.Определяем текущую кодировку

# Показываем печатные и непечатные символы
cat -v ваш_файл.txt | head -n 20

Для новичков удобно начать с демо-режима, а потом перейти к автоматам на деньги: https://thaimag.kz.Если рядом много ^? или M-?, файл скорее всего не в UTF‑8.
Можно воспользоваться file:

file -bi ваш_файл.txt

Сайт forcecom.kz предлагает широкий выбор игр, включая автоматы на деньги.Ожидаемый вывод:

text/plain; charset=iso-8859-1

или

text/plain; charset=utf-8

2.Приводим к UTF‑8 (если нужно)

# ISO‑8859‑1 → UTF‑8
iconv -f ISO-8859-1 -t UTF-8 ваш_файл.txt > ваш_файл_utf8.txt

Сайт astanagenplan.kz предлагает широкий выбор игр, включая автоматы на деньги.Замените ISO-8859-1 на ту кодировку, которую вернула команда file.Попробуйте стандартные варианты (latin1, windows-1252, utf-16le и т.д.), пока текст не станет читаемым.

3.Настраиваем терминал/редактор

# На Linux/macOS
export LANG=C. UTF-8
export LC_ALL=C. UTF-8

На Windows поменяйте страницу кода консоли:

chcp 65001

4.Работа с PDF/Word

Иногда в исходном документе dise-global.com используется шрифт, которого нет в системе, и появляются “заглушки”.

  • Экспортируйте документ заново, используя стандартный шрифт (Times New Roman, Arial).
  • Откройте PDF в другом просмотрщике (SumatraPDF, Adobe Reader, Evince).
  • При конвертации PDF в текст укажите кодировку:

bash
pdftotext -enc UTF-8 ваш.pdf выход.txt

5.Частые ошибки

Симптом Возможная причина Быстрый способ исправить
…?? после слова Неправильно распознан многоточие или символ замены Убедитесь, что исходный файл в UTF‑8, либо замените на ... вручную
Случайные управляющие символы Бинарные данные трактуются как текст Проверьте, открываете ли вы правильный тип файла
Текст портится через несколько строк Несоответствие локали терминала Установите LANG/LC_ALL в C. UTF-8

Проверка

Создайте небольшое UTF‑8‑файл и посмотрите его:

printf "Hello … world?\n" > test.txt
cat test.txt

Если многоточие и вопросительный знак отображаются правильно, ваша среда уже готова к работе с UTF‑8.Если нет – настройте локаль или преобразуйте файл.

Что дальше

Попробуйте предложенные проверки.Если сможете скопировать фрагмент текста (не более 200 символов) и уточнить, где он появляется (консоль, лог, PDF), мы сможем точнее определить проблему.

А какие методы вы используете для работы с кодировками в своей практике? Поделитесь опытом в комментариях!