Подобрать кодировку: Универсальный декодер текста — Хитрые инструменты

Содержание

Автоопределение кодировки текста / Хабр


Введение

Я очень люблю программировать, я любитель и первый и последний раз заработал на программировании в далёком 1996 году. Но для автоматизации повседневных задач иногда что-то пишу. Примерно год назад открыл для себя golang. В качестве инструмента создания утилит golang оказался очень удобным. Итак.

Возникла потребность обработать большое количество (больше тысячи, так и вижу улыбки профи) архивных файлов со специальной геофизической информацией. Формат файлов текстовый, простой. Если вдруг интересно то это LAS формат.
LAS файл содержит заголовок и данные.

Данные практически CSV, только разделитель табуляция или пробелы.

А заголовок содержит описание данных и вот в нём обычно содержится русский текст. Это может быть название месторождения, название исследований, записанных в файл и пр.

Файлы эти созданы в разное время и в разных программах, доходит до того, что в одном файле часть в кодировке CP1251, а часть в CP866.

Файлы эти мне нужно обработать, а значит понять. Вот и потребовалось определять автоматически кодировку файла.

В итоге изобрёл велосипед на golang и соответственно родилась маленькая библиотечка с возможностью детектировать кодовую страницу.

Про кодировки. Не так давно на хабре была хорошая статья про кодировки Как работают кодировки текста. Откуда появляются «кракозябры». Принципы кодирования. Обобщение и детальный разбор Если хочется понять, что такое “кракозябры” или “кости”, то стоит прочитать.

В начале я накидал своё решение. Потом пытался найти готовое работающее решение на golang, но не вышло. Нашлось два решения, но оба не работают.


  • Первое “из коробки”— golang.org/x/net/html/charset функция DetermineEncoding()
  • Второе библиотека — saintfish/chardet на github

Обе уверенно ошибаются на некоторых кодировках. Стандартная та вообще почти ничего определить не может по текстовым файлам, оно и понятно, её для html страниц делали.

При поиске часто натыкался на готовые утилиты из мира linux — enca. Нашёл её версию скомпилированную для WIN32, версия 1.12. Её я тоже рассмотрю, там есть забавности. Я прошу сразу прощения за своё полное незнание linux, а значит возможно есть ещё решения которые тоже можно попытаться прикрутить к golang коду, я больше искать не стал.


Сравнение найденных решений на автоопределение кодировки

Подготовил каталог softlandia\cpd тестовые данные с файлами в разных кодировках. Содержимое файлов очень короткое и одинаковое. Одна строка “Русский в кодировке CodePageName”. Дополнил файлами со смешением кодировок и некоторыми сложными случаями и попробовал определить.

Мне кажется, получилось забавно.



Наблюдение 1

enca не определила кодировку у файла UTF-16LE без BOM — это странно, ну ладно. Я попробовал добавить больше текста, но результата не получил.


Наблюдение 2. Проблемы с кодировками CP1251 и KOI8-R

Строка 15 и 16. У команды enca есть проблемы.
Здесь сделаю объяснение, дело в том, что кодировки CP1251 (она же Windows 1251) и KOI8-R очень близки если рассматривать только алфавитные символы.


Таблица CP 1251


Таблица KOI8-r

В обеих кодировках алфавит расположен от 0xC0 до 0xFF, но там, где у одной кодировки заглавные буквы, у другой строчные. Судя по всему enca, работает по строчным буквам. Вот и получается, если подать на вход программе enca строку “СТП” в кодировке CP1251, то она решит, что это строка “яро” в кодировке KOI8-r, о чём и сообщит. В обратную сторону также работает.


Наблюдение 3

Стандартной библиотеке html/charset можно доверить только определение UTF-8, но осторожно! Пользоваться следует именно charset.DetermineEncoding(), поскольку метод utf8.Valid(b []byte) на файлах в кодировке utf-16be возвращает true.


Собственный велосипед

Автоопределение кодировки возможно только эвристическими методами, неточно. Если мы не знаем, на каком языке и в какой кодировке записан текстовый файл, то определить кодировку с высокой точночностью наверняка можно, но будет сложновато… и нужно будет достаточно много текста.

Для меня такая цель не стояла. Мне достаточно определять кодировки в предположении, что там есть русский язык. И второе, определять нужно по небольшому количеству символов – на 10 символах должно быть достаточно уверенное определение, а желательно вообще на 5–6 символах.


Алгоритм

Когда я обнаружил совпадение кодировок KOI8-r и CP1251 по местоположению алфавита, то на пару дней загрустил… стало понятно, что чуть-чуть придётся подумать. Получилось так.

Основные решения:


  1. Работу будем вести со слайсом байтов, для совместимости с charset.DetermineEncoding()
  2. Кодировку UTF-8 и случаи с BOM проверяем отдельно
  3. Входные данные передаём по очереди каждой кодировке. Каждая сама вычисляет два целочисленных критерия. У кого сумма двух критериев больше, тот и выиграл.

Критерии соответствия


Первый критерий

Первым критерием является количество самых популярных букв русского алфавита.

Наиболее часто встречаются буквы: о, е, а, и, н, т, с, р, в, л, к, м, д, п, у. Данные буквы дают 82% покрытия. Для всех кодировок кроме KOI8-r и CP1251 я использовал только первые 9 букв: о, е, а, и, н, т, с, р, в. Этого вполне хватает для уверенного определения.

А вот для KOI8-r и CP1251 пришлось доработать напильником. Коды некоторых из этих букв совпадают, например буква о имеет в CP1251 код 0xEE при этом в KOI8-r этот код у буквы н. Для этих кодировок были взяты следующие популярные буквы. Для CP1251 использовал а, и, н, с, р, в, л, к, я. Для KOI8-r — о, а, и, т, с, в, л, к, м.


Второй критерий

К сожалению, для очень коротких случаев (общая длина русского текста 5-6 символов) встречаемость популярных букв на уровне 1-3 шт и происходит нахлёст кодировок KOI8-r и CP1251. Пришлось вводить второй критерий. Подсчёт количества пар согласная+гласная.
Такие комбинации ожидаемо наиболее часто встречаются в русском языке и соответственно в той кодировке в которой число таких пар больше, та кодировка имеет больший критерий.

Вычисляются оба критерия, складываются и полученная сумма является итоговым критерием.
Результат отражен в таблице выше.


Особенности, с которыми я столкнулся

Чуть коснусь прелестей и проблем, связанных с golang. Раздел может быть интересен только начинающим писать на golang.


Проблемы

Лично походил по некоторым подводным камушкам из 50 оттенков Go: ловушки, подводные камни и распространённые ошибки новичков.
Излишне переживая и пытаясь дуть на воду, прослышав от других о страшных ожогах от молока, переборщил с проверкой входного параметра типа io.Reader. Я проверял переменную типа io.Reader с помощью рефлексии.

//CodePageDetect - detect code page of ascii data from reader 'r'
func CodePageDetect(r io.Reader, stopStr ...string) (IDCodePage, error) {
    if !reflect.ValueOf(r).IsValid() {
        return ASCII, fmt.Errorf("input reader is nil")
    }
...

Но как оказалось в моём случае достаточно проверить на nil. Теперь всё стало проще

func CodePageDetect(r io.Reader, stopStr ...string) (IDCodePage, error) {
    //test input interfase
    if r == nil {
        return ASCII, nil
    }
    //make slice of byte from input reader
    buf, err := bufio.NewReader(r).Peek(ReadBufSize)
    if (err != nil) && (err != io.EOF) {
        return ASCII, err
    }
...

вызов bufio.NewReader( r ).Peek(ReadBufSize) спокойно проходит следующий тест:

    var data *os.File
    res, err := CodePageDetect(data)

В этом случае Peek() возвращает ошибку.

Разок наступил на грабли с передачей массивов по значению. Немного тупанул на попытке изменять элементы, хранящиеся в map, пробегая по ним в range…


Прелести

Сложно сказать что конкретно, постоянное ли битьё по рукам от линтера и компилятора или активное использование range, или всё вместе, но практически отсутствуют залёты по выходу индекса за пределы.

Конечно, очень приятно жить со сборщиком мусора. Полагаю мне ещё предстоит освоить грабли автоматизации выделения/освобождения памяти, но пока дебильная улыбка не покидает лица.
Строгая типизация — тоже кусочек счастья.

Переменные, имеющие тип функции — соответственно лёгкая реализация различного поведения у однотипных объектов.

Странно мало пришлось сидеть в отладчике, перечитывание кода обычно даёт результат.

Щенячий восторг от наличия массы инструментов из коробки, это чудное ощущение, когда компилятор, язык, библиотека и IDE Visual Studio Code работают на тебя вместе, слаженно.

Спасибо falconandy за конструктивные и полезные советы
Благодаря ему


  1. перевёл тесты на testify и они действительно стали более читабельны
  2. исправил в тестах пути к файлам данных для совместимости с Linux
  3. прошёлся линтером — таки он нашёл одну реальную ошибку (проклятущий copy/past)

Продолжаю добавлять тесты, выявился случай не определения UTF16. Обновил. Теперь UTF16 и LE и BE определяются даже в случае отсутствия русских букв

Проверка кодировки символов используя валидатор

Проверка кодировки символов используя валидатор

Intended audience: пользователи, шифровальщики XHTML/HTML (используя редакторы или скрипты), разработчики скриптов (PHP, JSP, и т.д.), Менеджеры веб-проектов, и каждый, кто хочет узнать, как проверить кодировку символов документа.

Как я могу проверить правильно ли кодирование символов моего документа используя W3C HTML Валидатор?

Чтобы убедиться, что все получатели документа могут его правильно отобразить и интерпретировать, очень важно правильно указать кодировку символов (‘charset’). Один из способов это проверить — использовать W3C Сервис Проверки Разметки. Валидатор обычно определяет кодировку символов с HTTP заголовков и информации в документе. Если валидатор не в состоянии обнаружить кодировку, то её можно будет выбрать на странице результатов валидатора с помощью раскрывающегося меню ‘Кодировка’ (пример).

Но часто, валидатор не жалуется, даже если обнаруженное или избранное неправильное кодирование. Причина этого в том, что много кодировок очень похожи, а валидатор проверяет только синтаксис разметки и не может решить имеет ли смысл декодированный текст или нет. Чтобы убедиться, что вы имеете правильное кодирование, которое означает, что документ будет корректно отображаться для читателей, используйте следующие пункты:

  • Если выбранные или обнаруженые кодирования: US-ASCII, UTF-8, UTF-16, или iso-2022-jp (Japanese JIS), и валидатор не жалуется на проблемы с кодировкой, то есть очень высокая вероятность того, что кодирование избранное правильно. Обратите внимание, что US-ASCII является строгим подмножеством кодировки UTF-8, и поэтому, если US-ASCII работает, то UTF-8 также будет работать.

  • Для любого другого кодирования необходим визуальный контроль. Выберите опцию Show Source (показать источник) с Extended Interface (Расширенного интерфейса) валидатора, и проверьте правильно ли отображаются в тексте non-ASCII символы. Для страниц на иностранных языках, это, как правило, можно сделать достаточно быстро. Для страниц на Английском языке со всего несколькими non-ASCII символамы, это может быть более сложной задачей.

    Например, если вы пытались интерпретировать главную страницу W3C как iso-8859-1, вам, возможно, придется пересмотреть источник почти до конца для того, чтобы найти такой текст, как ‘©’ и ‘®’ и увидеть, что это неправильный выбор. (Конечно, та страница, с самого начала указывает валидатору, что она закодирована в UTF-8, и поэтому на самом деле вам не нужно что-то еще проверять.)

  • В некоторых случаях более чем одна кодировка будет адекватно представлять символы в документе. Например, есть некоторое перекрытие между iso-8859-1 (Latin-1, Западная Европа) и iso-8859-2 (Latin-2, Восточная Европа), и другие кодировки в этой серии. Если после тщательной проверки, вы не можете найти разницу, то любой выбор будет подходящим. Близкое сходство этих кодировок с точки зрения моделей байтов и с точки зрения фактически закодированных символов объясняет почему только визуальный осмотр может помочь убедиться правильное ли кодирование.

  • Если ни одна из предложенных валидатором кодировок не работает, то вы либо имеете страницу в кодировке, которую валидатор (пока) не поддерживает, или как-то, текст в нескольких различных кодировках смешался на странице. В первом случае, напишите на validator mailing list (список рассылки валидатора) (public archive (общественный архив)), чтобы вашу кодировку символов добавили. В последнем случае, вы должны исправить свою страницу, так как каждая Веб-страница может использовать только одну кодировку символов.

Валидатор не может работать без информации о кодировке потому что SGML или XML проверка основана на проверке последовательностей символов в документе, но то, что валидатор принимает в качестве входных данных — просто последовательность байтов. Знание кодирования символов позволяет валидатору превращать байты в символы. В общем, все то же самое действительно для всех других видов приемников, включая браузеры. Если символы определены не правильно, то Веб браузер будет отображать некорректную информацию.

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

Обратите внимание, что визуальная проверка веб-страницы с помощью браузера без использования валидатор может провалиться, поскольку:

  • Некоторые браузеры используют нестандартные способы выявления кодирования символов.
  • Каждый браузер имеет настройки, которые используются для неотмеченных страниц, а если те настройки случайно будут правильной кодировкой страницы, то вы не увидите, что страница с должной информацией о кодировке не доходит.
  • Кроме текста на странице, есть еще текст в атрибутах (например текст атрибута alt в <img>), который нужно проверить.

Прочитать файл в старой кодировке

До того как Юникод набрал популярность, для представления текстов в текстовых файлах на национальных языках использовались различные кодировки символов. Этот калькулятор нужен для, того чтобы прочитать текстовый файл в устаревшей кодировке.
Чтобы увидеть содержимое старого текстового файла просто загрузите файл в калькулятор и выберите кодировку. В результате отобразится искомый текст или набор бессмысленных символов, если кодировка выбрана неправильно.

Просмотр текстового файла

Текстовый файл

КодировкаAtari STCP 856 HebrewDOS Arabic (CP864)DOS Baltic Rim (CP775)DOS Cyrillic (CP855)DOS Cyrillic Russian (CP866)DOS French Canada (CP863)DOS Greek (CP737)DOS Greek 2 (CP869)DOS Hebrew (CP862)DOS Icelandic (CP861)DOS Latin 1 (CP850)DOS Latin 2 (CP852)DOS Latin US (CP437)DOS Nordic (CP865)DOS Portuguese (CP860)DOS Turkish (CP857)EBCDIC 037 USA/CanadaEBCDIC 1026 TurkishEBCDIC 424 HebrewEBCDIC 500 InternationalEBCDIC 875 GreekGSM 03.38ISO 8-bit Urdu (IBM CP1006)ISO 8859-2 (Latin-2)ISO 8859-5ISO 8859-6ISO 8859-7ISO-IR-68ISO/IEC 8859-1 (Latin-1)ISO/IEC 8859-10 (Latin-6)ISO/IEC 8859-11 ISO/IEC 8859-13 (Latin-7)ISO/IEC 8859-14ISO/IEC 8859-15 (Latin-9)ISO/IEC 8859-16 (Latin-10)ISO/IEC 8859-3ISO/IEC 8859-4 (Latin-4)ISO/IEC 8859-8ISO/IEC 8859-9KOI8-RKOI8-UKPS 9566KZ-1048 Mac OS CelticMac OS Central EuropeanMac OS CroatianMac OS CyrillicMac OS DingbatsMac OS GaelicMac OS GreekMac OS IcelandicMac OS InuitMac OS RomanMac OS RomanianMac OS TurkishUTF-8Windows-1250Windows-1251Windows-1252Windows-1253Windows-1254Windows-1255Windows-1256Windows-1257Windows-1258Windows-874Windows-932Windows-936Windows-949Windows-950

Ссылка Сохранить Виджет

Если подобрать кодировку вручную не получается, можно использовать следующий калькулятор для ее полуавтоматического определения. Калькулятор попытается отобразить текст с использованием всех имеющихся кодировок. В одной из строк таблицы будет правильно отображенный начальный фрагмент текста, слева от него будет обозначение кодировки.

Подбор кодировки для текстового файла

Текстовый файл

КодировкаAtari STCP 856 HebrewDOS Arabic (CP864)DOS Baltic Rim (CP775)DOS Cyrillic (CP855)DOS Cyrillic Russian (CP866)DOS French Canada (CP863)DOS Greek (CP737)DOS Greek 2 (CP869)DOS Hebrew (CP862)DOS Icelandic (CP861)DOS Latin 1 (CP850)DOS Latin 2 (CP852)DOS Latin US (CP437)DOS Nordic (CP865)DOS Portuguese (CP860)DOS Turkish (CP857)EBCDIC 037 USA/CanadaEBCDIC 1026 TurkishEBCDIC 424 HebrewEBCDIC 500 InternationalEBCDIC 875 GreekGSM 03.38ISO 8-bit Urdu (IBM CP1006)ISO 8859-2 (Latin-2)ISO 8859-5ISO 8859-6ISO 8859-7ISO-IR-68ISO/IEC 8859-1 (Latin-1)ISO/IEC 8859-10 (Latin-6)ISO/IEC 8859-11 ISO/IEC 8859-13 (Latin-7)ISO/IEC 8859-14ISO/IEC 8859-15 (Latin-9)ISO/IEC 8859-16 (Latin-10)ISO/IEC 8859-3ISO/IEC 8859-4 (Latin-4)ISO/IEC 8859-8ISO/IEC 8859-9KOI8-RKOI8-UKPS 9566KZ-1048 Mac OS CelticMac OS Central EuropeanMac OS CroatianMac OS CyrillicMac OS DingbatsMac OS GaelicMac OS GreekMac OS IcelandicMac OS InuitMac OS RomanMac OS RomanianMac OS TurkishUTF-8Windows-1250Windows-1251Windows-1252Windows-1253Windows-1254Windows-1255Windows-1256Windows-1257Windows-1258Windows-874Windows-932Windows-936Windows-949Windows-950

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

Загрузить

Ссылка Сохранить Виджет

Для генерации файлов в старых кодировках можно использовать этот калькулятор: Кодировка файла

Как определить кодировку текста? — CodeRoad



Я получил какой-то кодированный текст, но не знаю, какая кодировка была использована. Есть ли способ определить кодировку текстового файла с помощью Python? Как я могу определить кодировку / кодовую страницу текстового файла , связанного с C#.

python encoding text-files
Поделиться Источник Nope     12 января 2009 в 17:30

10 ответов


  • Как определить кодировку потока webresponse?

    Как определить кодировку потока webresponse ?

  • как определить кодировку текста

    Я знаю, что в файле UTF есть BOM для определения кодировки, но как насчет другой кодировки, которая понятия не имеет, как угадать эту кодировку? Я новый программист java. Я написал код для угадывания кодировки UTF с помощью UTF BOM. но у меня есть проблема с другой кодировкой. Как мне их угадать?…



241

EDIT: chardet, кажется, не имеет значения, но большая часть ответа применима. Проверьте https://pypi.org/project/charset-normalizer/ на наличие альтернативы

Правильное обнаружение кодировки все время невозможно .

(Из chardet FAQ:)

Однако некоторые кодировки оптимизированы для определенных языков, и языки не являются случайными. Некоторые последовательности символов появляются все время, в то время как другие последовательности не имеют смысла. Человек, свободно владеющий английским языком, который открывает газету и находит “txzqJv 2!dasd0a QqdKjvz”, мгновенно поймет, что это не английский (хотя это и так полностью состоит из английских букв). Изучая большое количество текста “typical”, компьютерный алгоритм может имитировать этот вид беглости и сделать обоснованное предположение о языке текста.

Существует библиотека chardet , которая использует это исследование, чтобы попытаться обнаружить кодировку. chardet-это порт кода автоматического обнаружения в Mozilla.

Вы также можете использовать UnicodeDammit . Он попробует следующие методы:

  • Кодировка, обнаруженная в самом документе: например, в объявлении XML или (для документов HTML) теге http-equiv META. Если Beautiful Soup находит такую кодировку в документе, он снова анализирует документ с самого начала и пытается использовать новую кодировку. Единственное исключение-если вы явно указали кодировку, и эта кодировка действительно сработала: тогда она будет игнорировать любую кодировку, найденную в документе.
  • Кодировка понюхала, посмотрев на первые несколько байтов файла. Если кодировка обнаружена на этом этапе, это будет одна из кодировок UTF-*, EBCDIC или ASCII.
  • Кодировка, обнюханная библиотекой шарде, если она у вас установлена.
  • UTF-8
  • Windows-1252

Поделиться nosklo     12 января 2009 в 17:45



78

Другой вариант для разработки кодировки-использовать libmagic (который является кодом, лежащим в основе команды file ). Существует множество доступных привязок python.

Привязки python, которые находятся в дереве исходных файлов, доступны как python-magic (или python3-magic ) debian посылка. Он может определить кодировку файла, выполнив:

import magic

blob = open('unknown-file', 'rb').read()
m = magic.open(magic.MAGIC_MIME_ENCODING)
m.load()
encoding = m.buffer(blob)  # "utf-8" "us-ascii" etc

В pypi есть пакет python -magic pip с одинаковым именем, но несовместимый, который также использует libmagic . Он также может получить кодировку, выполнив:

import magic

blob = open('unknown-file', 'rb').read()
m = magic.Magic(mime_encoding=True)
encoding = m.from_buffer(blob)

Поделиться Hamish Downer     24 апреля 2013 в 23:10


  • Как определить кодировку txt-файла?

    Возможный Дубликат : Как я могу определить кодировку / кодовую страницу текстового файла У меня есть много txt-файлов в каталоге. Я должен найти все с кодировкой UTF-8. Как этого добиться?

  • Как обнаружить кодировку текста CString в iphone/iPad?

    У меня есть смешанный набор CString в разных текстовых кодировках. Поскольку я не знаю оригинальную кодировку CString, как обнаружить кодировку текста CString в iphone/iPad ? Спасибо.



35

Некоторые стратегии кодирования, пожалуйста, раскомментируйте по вкусу :

#!/bin/bash
#
tmpfile=$1
echo '-- info about file file ........'
file -i $tmpfile
enca -g $tmpfile
echo 'recoding ........'
#iconv -f iso-8859-2 -t utf-8 back_test.xml > $tmpfile
#enca -x utf-8 $tmpfile
#enca -g $tmpfile
recode CP1250..UTF-8 $tmpfile

Возможно, вы захотите проверить кодировку, открыв и прочитав файл в виде цикла… но сначала вам может потребоваться проверить размер файла :

#PYTHON
encodings = ['utf-8', 'windows-1250', 'windows-1252'] # add more
            for e in encodings:
                try:
                    fh = codecs.open('file.txt', 'r', encoding=e)
                    fh.readlines()
                    fh.seek(0)
                except UnicodeDecodeError:
                    print('got unicode error with %s , trying different encoding' % e)
                else:
                    print('opening the file with encoding:  %s ' % e)
                    break              

Поделиться zzart     06 февраля 2013 в 16:32



30

Вот пример чтения и принятия за чистую монету предсказания кодировки chardet , считывания n_lines из файла в случае, если он большой.

chardet также дает вам вероятность (т. е. confidence ) предсказания его кодирования (не посмотрел, как они это придумали), которое возвращается с его предсказанием из chardet.predict(), так что вы можете как-то это обработать, если хотите.

def predict_encoding(file_path, n_lines=20):
    '''Predict a file's encoding using chardet'''
    import chardet

    # Open the file as binary data
    with open(file_path, 'rb') as f:
        # Join binary lines for specified number of lines
        rawdata = b''.join([f.readline() for _ in range(n_lines)])

    return chardet.detect(rawdata)['encoding']

Поделиться ryanjdillon     18 июля 2017 в 13:01



6

Это может быть полезно

from bs4 import UnicodeDammit
with open('automate_data/billboard.csv', 'rb') as file:
   content = file.read()

suggestion = UnicodeDammit(content)
suggestion.original_encoding
#'iso-8859-1'

Поделиться richinex     25 марта 2020 в 23:40



5

# Function: OpenRead(file)

# A text file can be encoded using:
#   (1) The default operating system code page, Or
#   (2) utf8 with a BOM header
#
#  If a text file is encoded with utf8, and does not have a BOM header,
#  the user can manually add a BOM header to the text file
#  using a text editor such as notepad++, and rerun the python script,
#  otherwise the file is read as a codepage file with the 
#  invalid codepage characters removed

import sys
if int(sys.version[0]) != 3:
    print('Aborted: Python 3.x required')
    sys.exit(1)

def bomType(file):
    """
    returns file encoding string for open() function

    EXAMPLE:
        bom = bomtype(file)
        open(file, encoding=bom, errors='ignore')
    """

    f = open(file, 'rb')
    b = f.read(4)
    f.close()

    if (b[0:3] == b'\xef\xbb\xbf'):
        return "utf8"

    # Python automatically detects endianess if utf-16 bom is present
    # write endianess generally determined by endianess of CPU
    if ((b[0:2] == b'\xfe\xff') or (b[0:2] == b'\xff\xfe')):
        return "utf16"

    if ((b[0:5] == b'\xfe\xff\x00\x00') 
              or (b[0:5] == b'\x00\x00\xff\xfe')):
        return "utf32"

    # If BOM is not provided, then assume its the codepage
    #     used by your operating system
    return "cp1252"
    # For the United States its: cp1252


def OpenRead(file):
    bom = bomType(file)
    return open(file, 'r', encoding=bom, errors='ignore')


#######################
# Testing it
#######################
fout = open("myfile1.txt", "w", encoding="cp1252")
fout.write("* hi there (cp1252)")
fout.close()

fout = open("myfile2.txt", "w", encoding="utf8")
fout.write("\u2022 hi there (utf8)")
fout.close()

# this case is still treated like codepage cp1252
#   (User responsible for making sure that all utf8 files
#   have a BOM header)
fout = open("badboy.txt", "wb")
fout.write(b"hi there.  barf(\x81\x8D\x90\x9D)")
fout.close()

# Read Example file with Bom Detection
fin = OpenRead("myfile1.txt")
L = fin.readline()
print(L)
fin.close()

# Read Example file with Bom Detection
fin = OpenRead("myfile2.txt")
L =fin.readline() 
print(L) #requires QtConsole to view, Cmd.exe is cp1252
fin.close()

# Read CP1252 with a few undefined chars without barfing
fin = OpenRead("badboy.txt")
L =fin.readline() 
print(L)
fin.close()

# Check that bad characters are still in badboy codepage file
fin = open("badboy.txt", "rb")
fin.read(20)
fin.close()

Поделиться Bimo     31 мая 2017 в 22:22




2

В зависимости от вашей платформы я просто предпочитаю использовать команду linux shell file . Это работает для меня, так как я использую его в скрипте, который работает исключительно на одной из наших машин linux.

Очевидно, что это не идеальное решение или ответ, но его можно изменить в соответствии с вашими потребностями. В моем случае мне просто нужно определить, является ли файл UTF-8 или нет.

import subprocess
file_cmd = ['file', 'test.txt']
p = subprocess.Popen(file_cmd, stdout=subprocess.PIPE)
cmd_output = p.stdout.readlines()
# x will begin with the file type output as is observed using 'file' command
x = cmd_output[0].split(": ")[1]
return x.startswith('UTF-8')

Поделиться MikeD     22 июня 2017 в 16:39



1

В общем случае в принципе невозможно определить кодировку текстового файла. Так что нет, нет стандартной библиотеки Python, чтобы сделать это за вас.

Если у вас есть более конкретные знания о текстовом файле (например, что это XML), могут быть библиотечные функции.

Поделиться Martin v. Löwis     12 января 2009 в 17:32



1

Если вы знаете некоторое содержимое файла, вы можете попытаться декодировать его с помощью нескольких кодировок и посмотреть, какая из них отсутствует. В общем, нет никакого способа, так как текстовый файл-это текстовый файл, и это глупо 😉

Поделиться Martin Thurau     12 января 2009 в 17:36



1

На этом сайте есть код python для распознавания ascii, кодировка с bom и utf8 без bom: https://unicodebook.readthedocs.io/guess_encoding.html . Чтение файла в массив байтов (данные): http://www.codecodex.com/wiki/Read_a_file_into_a_byte_array . Вот пример. Я в osx.

#!/usr/bin/python                                                                                                  

import sys

def isUTF8(data):
    try:
        decoded = data.decode('UTF-8')
    except UnicodeDecodeError:
        return False
    else:
        for ch in decoded:
            if 0xD800 <= ord(ch) <= 0xDFFF:
                return False
        return True

def get_bytes_from_file(filename):
    return open(filename, "rb").read()

filename = sys.argv[1]
data = get_bytes_from_file(filename)
result = isUTF8(data)
print(result)


PS /Users/js> ./isutf8.py hi.txt                                                                                     
True

Поделиться js2010     12 апреля 2019 в 14:10


Похожие вопросы:


Как определить кодировку строки в cocoa?

Как определить кодировку строки в cocoa? Недавно я работаю над радиоплеером. Иногда текст тега id3 искажался. Вот мой код: CFDictionaryRef audioInfoDictionary; UInt32 size =…


Как определить кодировку символов Unix terminal?

Есть ли способ определить кодировку символов, установленную в terminal, которая вызывает мою программу Java? В Windows я могу вызвать инструмент chcp и разобрать вывод. Но как насчет in Linux или…


Какую кодировку текста использовать?

Мне нужно настроить кодировку текста PostgreSQL DB для обработки неамериканских английских символов, которые вы найдете в таких языках, как немецкий, испанский и французский. Что character encoding…


Как определить кодировку потока webresponse?

Как определить кодировку потока webresponse ?


как определить кодировку текста

Я знаю, что в файле UTF есть BOM для определения кодировки, но как насчет другой кодировки, которая понятия не имеет, как угадать эту кодировку? Я новый программист java. Я написал код для…


Как определить кодировку txt-файла?

Возможный Дубликат : Как я могу определить кодировку / кодовую страницу текстового файла У меня есть много txt-файлов в каталоге. Я должен найти все с кодировкой UTF-8. Как этого добиться?


Как обнаружить кодировку текста CString в iphone/iPad?

У меня есть смешанный набор CString в разных текстовых кодировках. Поскольку я не знаю оригинальную кодировку CString, как обнаружить кодировку текста CString в iphone/iPad ? Спасибо.


iOS: как лучше всего определить кодировку файла

В некоторых случаях мне действительно нужно знать кодировку файла при чтении файла. Иногда мы можем сделать так, как предлагает руководство Apple по строковому программированию : Чтение данных с…


Как определить кодировку строки в Ruby

У меня есть строка, полученная через gets.chomp класса TcpSocket . Как я могу определить кодировку этой строки? Затем мне нужно преобразовать его в консольную кодировку Windows, чтобы я мог его…


Как определить кодировку datetime.strftime (…) в Python?

Я хочу создать unicode sandwich, который включает в себя некоторые значения даты и времени и является независимым от locale. Для непосвященных термин unicode сэндвич описывает практику…

Какие бывают виды кодировки от алкоголя

Часто случается так, что у пациента есть желание бросить пить, но он не готов расставаться с зависимостью. Неуверенность в себе и в своей способности не сорваться мешает даже попробовать вернуться к нормальному образу жизни.

Сразу скажу: если пациенту комфортно жить с зависимостью, и он не хочет ничего менять, — кодировка вряд ли поможет. Обычно, если зависимого кодируют без его желания, со временем он опять начинает выпивать.

Медикаментозное кодирование

Это самый распространенный способ кодировки. Препарат может вшиваться под кожу (метод вшивания торпеды), вводиться в виде инъекций или таблеток.

Преимущества:

  • алкоблокираторы начинают действовать быстро;
  • можно подобрать препарат для терапии любой формы;
  • как правило, процедура стоит недорого.

Недостатки:

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

По любым вопросам, связанным с зависимостью,
Вы можете обратиться к нам — в клинику доктора Василенко.
Посетите нас по адресу: г. Екатеринбург, ул. Мамина-Сибиряка, 45.
Звоните по телефонам +7 (343) 21-99-197 или +7 (343) 37-87-864.


Гипноз

При гипнозе врач вводит пациента в транс и формирует у него страх к алкоголю.

Преимущества:

  • нет побочных эффектов;
  • недорого;
  • пациент может сам выбрать срок, на который будет закодирован.

Недостатки:

  • не работает у людей, которые плохо поддаются внушению;
  • тяга к алкоголю сохраняется, от приема спиртного удерживает только страх.

Иглорефлексотерапия

Воздействие иглами на акупунктурные точки оказывает общеоздоровительный эффект на пациента.

Преимущества:

  • устраняются системные нарушения в организме: тяга к спиртному, сбои в обменных процессах, эмоциональная неустойчивость;
  • нет побочных эффектов;
  • долговременный результат.

Недостатки:

  • болезненные ощущения;
  • достаточно большой перечень противопоказаний к проведению иглотерапии.

Лазерное кодирование

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

Преимущества:

  • устраняются системные нарушения в организме;
  • нет побочных эффектов;
  • нет болезненных ощущений от воздействия лазером;
  • долговременный результат.

А вот особенных недостатков у этого метода пока не было обнаружено. Есть лишь один, но он относится ко всем способам кодирования: все перечисленные выше виды лечения необходимо сочетать с психологической терапией.

В нашей клинике кодировка используется лишь как поддерживающий инструмент. Работаю только с пациентами, которые сами решили бросить пить. Во время бесед помогаю справиться с психологической зависимостью, а кодировку использую лишь, чтобы помочь продержаться в первые недели, когда еще сильна физическая зависимость.

Оформите заявку на сайте

мы свяжемся с вами в ближайшее время


Как поменять кодировку текста в Word

Набор символов, которые мы видим на экране при открытии документа, называется кодировкой. Когда она выставлена неправильно, вместо понятных и привычных букв и цифр вы увидите бессвязные символы. Эта проблема часто возникала на заре развития технологий, но сейчас текстовые процессоры умеют сами автоматически выбирать подходящие комплекты. Свою роль сыграло появление и развитие utf-8, так называемого Юникода, в состав которого входит множество самых разных символов, в том числе русских. Документы в такой кодировке не нуждаются в смене и настройке, так как показывают текст правильно по умолчанию.

Современные текстовые редакторы определяют кодировку при открытии документа

С другой стороны, такая ситуация всё же иногда случается. И получить нечитаемый документ очень досадно, особенно если он важный и нужный. Как раз для таких случаев в Microsoft Word есть возможность указать для текста кодировку. Это вернёт его в читаемый вид.

Принудительная смена

Если вы получили из какого-то источника текстовый файл, но не можете прочитать его содержимое, то нужна операция ручной смены кодировки. Для этого зайдите в раздел «Сведения» во вкладке «Файл». Тут собраны глобальные настройки распознавания и отображения, и если вы будете изменять их в открытом документе, то для него они станут индивидуальными, а для остальных — не изменятся. Воспользуемся этим. В разделе «Дополнительно» появившегося окна находим заголовок «Общие» и ставим галочку «Подтверждать преобразование файлов при открытии». Подтвердите изменения и закройте Word. Теперь откройте документ снова, как бы применяя настройки, и перед вами появится окно преобразования файла. В нём будет список возможных форматов, среди которых находим «Кодированный текст», и получим следующий диалог.

В этом новом окне будет три переключателя. Первый, по умолчанию, — это CP-1251, кодировка Windows. Второй — MS-DOS. Нам нужен третий пункт — ручной выбор, справа от него перечислены разнообразные наборы символов. Но, как правило, пользователь не знает, какими символами был набран текст предыдущим автором, поэтому в нижней части этого окна есть поле под названием «Образец», в котором фрагмент из текста будет в реальном времени отображаться при выборе того или иного комплекта символов. Это очень удобно, потому что не нужно каждый раз закрывать и отрывать документ снова, чтобы подобрать нужную.

Перебирая варианты по одному и глядя на текст в поле образцов, выберите ту кодировку, при которой символы будут русскими. Но обратите внимание, что это ещё ничего не значит, — внимательно смотрите, чтобы они складывались в осмысленные слова. Дело в том, что для русского языка есть не одна кодировка, и текст в одной из них не будет отображаться корректно в другой. Так что будьте внимательны.

Нужно сказать, что с файлами, сделанными на современных текстовых процессорах, крайне редко возникают подобные проблемы. Однако есть ещё и такой бич современного информационного общества, как несовместимость форматов. Дело в том, что существует целый ряд текстовых редакторов, и каждым кто-то пользуется. Возможно, для кого-то не нужна функциональность Ворда, кто-то не считает нужным за него платить и т. п. Причин может быть множество.

Если при сохранении документа автор выбрал формат, совместимый в MS Word, то проблем возникнуть не должно. Но так бывает нечасто. Например, если текст сохранён с расширением .rtf, то диалог выбора кодировки отобразится перед вами сразу же при открытии текста. А вот форматы другого популярного текстового процессора OpenOffice Ворд даже не откроет, поэтому, если им пользуетесь, не забывайте выбирать пункт «Сохранить как», когда отправляете файл пользователю Office.

Сохранение с указанием кодировки

У пользователя может возникнуть ситуация, когда он специально указывает определённую кодировку. Например, такое требование ему предъявляет получатель документа. В этом случае нужно будет сохранить документ как обычный текст через меню «Файл». Смысл в том, что для заданных форматов в Ворде есть привязанные глобальными системными настройками кодировки, а для «Обычного текста» такой связи не установлено. Поэтому Ворд предложит самостоятельно выбрать для него кодировку, показав уже знакомое нам окно преобразования документа. Выбирайте для него нужную вам кодировку, сохраняйте, и можно отправлять или передавать этот документ. Как вы понимаете, конечному получателю нужно будет сменить в своём текстовом редакторе кодировку на такую же, чтобы прочитать ваш текст.

Заключение

Вопрос смены кодировки в Вордовских документах перед рядовыми пользователями встаёт не так уж часто. Как правило, текстовый процессор может сам автоматически определить требуемый для корректного отображения набор символов и показать текст в читаемом виде. Но из любого правила есть исключения, так что нужно и полезно уметь сделать это самому, благо, реализован процесс в Word достаточно просто.

То, что мы рассмотрели, действительно и для других программ из пакета Office. В них также могут возникнуть проблемы из-за, скажем, несовместимости форматов сохранённых файлов. Здесь пользователю придётся выполнить всё те же действия, так что эта статья может помочь не только работающим в Ворде. Унификация правил настройки для всех программ офисного пакета Microsoft помогает не запутаться в них при работе с любым видом документов, будь то тексты, таблицы или презентации.

Напоследок нужно сказать, что не всегда стоит обвинять кодировку. Возможно, всё гораздо проще. Дело в том, что многие пользователи в погоне за «красивостями» забывают о стандартизации. Если такой автор выберет установленный у него шрифт, наберёт с его помощью документ и сохранит, у него текст будет отображаться корректно. Но когда этот документ попадёт к человеку, у которого такой шрифт не установлен, то на экране окажется нечитаемый набор символов. Это очень похоже на «слетевшую» кодировку, так что легко ошибиться. Поэтому перед тем как пытаться раскодировать текст в Word, сначала попробуйте просто сменить шрифт.

✔ Раскодировка от алкоголя в Тюмени: как снять кодировку

Как снять кодировку

Обратившись в наш медицинский центр, вы сможете раскодироваться от алкоголя в Тюмени. Способ раскодировки напрямую зависит от того, каким методом была осуществлена кодировка. Поэтому необходимо иметь при себе документы от врача, который избавлял вас от алкогольной зависимости. В некоторых случаях эта информация может не понадобиться.

В медицинской практике чаще всего применяется три способа раскодировки:

  1. Инъекция нейтрализующего вещества
  2. Удаление импланта
  3. Гипнотический метод

Если пациент был закодирован медикаментозными средствами (таблетки, лекарства, уколы), то через время действие такой кодировки пройдет само по себе. Препараты просто выведутся из организма естественным путем. Однако существует возможность раскодироваться от алкоголя после укола и раньше. Для этого нужно обратиться в наш наркологический диспансер, где квалифицированные врачи сделают инъекции нейтрализующего препарата. В этом случае обязательно нужно знать, какое лекарство было введено во время кодировки, чтобы подобрать нужный антидот.

Если избавление от алкогольной зависимости проходило посредством вшивания импланта, то процесс раскодировки заключается в его удалении. Предварительно наши специалисты проведут обследование пациента, ознакомятся с документами, и выполнят эту процедуру, гарантируя полную безопасность. После этого пациенту останется лишь дождаться заживления тканей. Алкоголь больше не будет вступать в реакцию с дисульфирамом, вызывая болезненные ощущения.

Обратите внимание

Самый сложный способ раскодировки – гипнотический. Ее должен выполнять лишь тот нарколог, который собственно и кодировал больного. Поэтому, если по каким-то причинам у вас нет возможности попасть к своему лечащему врачу, или он прекратил практику, то безопасно раскодироваться не получится.

Сколько стоит раскодировка от алкоголя? Каждый случай индивидуален и зависит от многих факторов. Учитывается способ избавления от алкогольной зависимости, наличие и полнота соответствующих документов, состояние здоровья пациента и пр. 

Выбор и применение кодировки символов

Выбор и применение кодировки символов

Целевая аудитория: Кодировщики HTML (использующие редакторы или сценарии), разработчики сценариев (PHP, JSP и т. Д.), Кодировщики CSS, менеджеры веб-проектов и все, кто плохо знаком с кодировками символов и нуждается в введении в то, как выбирать и применять кодировки символов.

Какую кодировку символов я должен использовать для своего контента и как применить ее к моему контенту?

Контент состоит из последовательности символов.Символы представляют собой буквы алфавита, знаки препинания и т. Д. Но содержимое хранится в компьютере как последовательность байтов, которые являются числовыми значениями. Иногда для представления одного символа используется более одного байта. Как и коды, используемые в шпионаже, способ преобразования последовательности байтов в символы зависит от того, какой ключ использовался для кодирования текста. В этом контексте этот ключ называется кодировкой символов .

Эта статья предлагает простые советы о том, какую кодировку символов использовать для вашего контента и как ее применять, т. Е.как на самом деле создать документ в этой кодировке.

Если вам нужно лучше понять, что такое символы и кодировки символов, см. Статью Кодировки символов для начинающих .

Выберите UTF-8 для всего содержимого и подумайте о преобразовании любого содержимого из устаревших кодировок в UTF-8.

Если вы действительно не можете использовать кодировку Unicode, убедитесь, что существует широкая поддержка браузером для выбранной вами кодировки страницы, и что эта кодировка не входит в список кодировок, которых следует избегать в соответствии с последними спецификациями.

Проверьте, повлияют ли на ваш выбор настройки HTTP-сервера.

Помимо объявления кодировки документа внутри документа и / или на сервере, вам необходимо сохранить текст в этой кодировке, чтобы применить его к вашему контенту.

Разработчикам также необходимо убедиться, что различные части системы могут взаимодействовать друг с другом.

Применение кодировки к вашему контенту

Авторы контента должны объявить кодировку символов своих страниц, используя один из методов, описанных в Объявление кодировок символов в HTML .

Однако важно понимать, что простое объявление кодировки внутри документа или на сервере фактически не изменит байты; вам нужно сохранить текст в этой кодировке , чтобы применить его к вашему контенту. (Объявление просто помогает браузеру интерпретировать последовательности байтов, в которых хранится текст.)

При необходимости настройте UTF-8 по умолчанию для новых документов в редакторе. На рисунке ниже показано, как это сделать в настройках редактора, такого как Dreamweaver.

Для получения информации о «Форме нормализации Unicode» см. Нормализация в HTML и CSS . Для получения информации о «Подпись Unicode (BOM)» см. Метка порядка байтов (BOM) в HTML .

Вам также может потребоваться проверить, что ваш сервер обслуживает документы с правильными декларациями HTTP, поскольку в противном случае он переопределит информацию в документе (см. Ниже).

Разработчикам также необходимо убедиться, что различные части системы могут взаимодействовать друг с другом.Веб-страницы должны иметь возможность беспрепятственно взаимодействовать с серверными скриптами, базами данных и т. Д. Все они, конечно, лучше всего работают и с UTF-8. Разработчики могут найти подробный набор вещей, которые следует учитывать, в статье Переход на Unicode .

Зачем использовать UTF-8?

HTML-страница может быть только в одной кодировке. Вы не можете кодировать разные части документа в разных кодировках.

Кодировка на основе Unicode, такая как UTF-8, может поддерживать множество языков и может содержать страницы и формы на любом сочетании этих языков.Его использование также устраняет необходимость в логике на стороне сервера для индивидуального определения кодировки символов для каждой обслуживаемой страницы или каждой входящей отправки формы. Это значительно упрощает работу с многоязычным сайтом или приложением.

Кодировка Unicode также позволяет смешивать намного больше языков на одной странице, чем любой другой выбор кодировки.

Поддержка данной кодировки, даже кодировки Unicode, не обязательно означает, что пользовательский агент будет правильно отображать текст.Многочисленные скрипты, такие как арабский и индийский, требуют дополнительных правил для преобразования последовательности символов в памяти в соответствующую последовательность глифов шрифта для отображения.

В наши дни барьеры для использования Unicode очень низки. Фактически, в январе 2012 года Google сообщил, что более 60% Интернета в их выборке из нескольких миллиардов страниц теперь используют UTF-8. Добавьте к этому цифру для веб-страниц только с ASCII (поскольку ASCII является подмножеством UTF-8), и эта цифра возрастет примерно до 80%.

Существует три различных кодировки символов Unicode: UTF-8, UTF-16 и UTF-32.Из этих трех только UTF-8 следует использовать для веб-содержимого. Спецификация HTML5 гласит: «Авторам рекомендуется использовать UTF-8. Средства проверки соответствия могут посоветовать авторам не использовать устаревшие кодировки. Инструменты разработки должны по умолчанию использовать UTF-8 для вновь создаваемых документов».

Обратите внимание, в частности, что все символы ASCII в UTF-8 используют в точности те же байты, что и кодировка ASCII, что часто способствует совместимости и обратной совместимости.

Принимая во внимание HTTP-заголовок

Любое объявление кодировки символов в заголовке HTTP переопределит объявления внутри страницы.Если заголовок HTTP объявляет кодировку, отличную от той, которую вы хотите использовать для своего контента, это вызовет проблему, если вы не сможете изменить настройки сервера.

У вас может не быть контроля над объявлениями, которые идут с заголовком HTTP, и вам, возможно, придется обратиться за помощью к людям, которые управляют сервером. С другой стороны, иногда есть способы исправить что-то на сервере, если у вас ограниченный доступ к файлам настройки сервера или если вы создаете страницы с помощью языков сценариев.Например, см. Установка параметра кодировки HTTP для получения дополнительной информации о том, как изменить информацию о кодировке либо локально для набора файлов на сервере, либо для контента, созданного с использованием языка сценариев.

Обычно перед этим необходимо проверить, действительно ли заголовок HTTP объявляет кодировку символов. Вы можете использовать средство проверки интернационализации W3C, чтобы узнать, какая кодировка символов, если таковая имеется, указана в заголовке HTTP. В качестве альтернативы, статья Проверка заголовков HTTP указывает на некоторые другие инструменты для проверки информации о кодировке, передаваемой сервером.

Информация в этом разделе относится к вещам, которые вам обычно не нужно знать, но которые включены сюда для полноты.

Что делать, если я не могу использовать UTF-8?

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

До недавнего времени реестр IANA был местом, где можно было найти имена для кодировок.Реестр IANA обычно включает несколько имен для одной и той же кодировки. В этом случае вы должны использовать имя, обозначенное как «предпочтительный».

Новая спецификация Encoding теперь предоставляет список, который был протестирован на реальных реализациях браузеров. Вы можете найти список в таблице в разделе «Кодировки». Лучше всего использовать имена из левого столбца этой таблицы.

Обратите внимание, однако, на , что наличие имени в любом из этих источников не обязательно означает, что использовать эту кодировку можно.В следующем разделе описаны кодировки, которых следует избегать.

Избегайте этих кодировок

Спецификация HTML5 называет ряд кодировок, которых следует избегать.

Документы не должны использовать JIS_C6226-1983 , JIS_X0212-1990 , HZ-GB-2312 , JOHAB (кодовая страница Windows 1361), кодировки на основе ISO-2022 или кодировки на основе EBCDIC . Это связано с тем, что они позволяют кодовым точкам ASCII представлять символы, отличные от ASCII, что создает угрозу безопасности.

Документы также не должны использовать кодировки CESU-8 , UTF-7 , BOCU-1 или SCSU , поскольку они никогда не предназначались для веб-содержимого, а спецификация HTML5 запрещает браузерам их распознавать.

Спецификация также настоятельно не рекомендует использовать UTF-16 , а использование UTF-32 «особенно не рекомендуется».

Также следует избегать других кодировок символов, перечисленных в спецификации Encoding .К ним относятся кодировки Big5 и EUC-JP , которые имеют проблемы совместимости. ISO-8859-8 (кодировка на иврите для визуально упорядоченного текста) также следует избегать в пользу кодировки, которая работает с логически упорядоченным текстом (например, UTF-8 или в противном случае ISO-8859-8-i).

Кодировка , заменяющая кодировку , указанная в спецификации Encoding , на самом деле не является кодировкой; это резервный вариант, который отображает каждый октет в кодовую точку Unicode U + FFFD REPLACEMENT CHARACTER.Очевидно, что передавать данные в такой кодировке бесполезно.

Определяемая пользователем кодировка x — это однобайтовая кодировка, нижняя половина которой является ASCII, а верхняя половина отображается в область частного использования Unicode (PUA). Как и PUA в целом, лучше избегать использования этой кодировки в общедоступном Интернете, поскольку она наносит ущерб совместимости и долгосрочному использованию.

Как изменить кодировку символов в Microsoft Word? »WebNots

Консорциум

Unicode назначает уникальный код для каждого символа, который вы можете ввести с клавиатуры.Это кодовая точка в шестнадцатеричном формате, например U + 2714 для символа галочки ✔. Однако отдельные приложения используют кодировку символов для преобразования этой кодовой точки Unicode в двоичный компьютерный код. Когда вы вводите код, ваш компьютер преобразует его в символ, используя кодовую страницу локали. Итак, символьная кодировка документов важна для просмотра их в удобочитаемом формате.

Шаги процесса в символьном отображении

Вы просматриваете ненужные символы в Word?

Microsoft Word использует кодировку символов Windows или macOS по умолчанию для таких расширений файлов, как.doc и .docx. Вы увидите ненужные символы при открытии текстового файла с другой кодировкой символов. Это не означает, что документ поврежден. Это означает, что документ был сохранен с другим стандартом кодировки, и вам необходимо изменить кодировку для просмотра в Word.

Как изменить кодировку символов в Microsoft Word?

Каждый раз, когда вы открываете несовместимый документ, Word отображает диалог преобразования файла. Однако, если вы его не видите, эту опцию легко включить.Вы можете открыть любой документ Word, чтобы включить этот параметр, так как он будет применен ко всем документам.

Диалог включения преобразования формата файла

  • Откройте документ и перейдите в меню «Файл> Параметры».
  • Щелкните раздел «Дополнительно» и прокрутите вниз до раздела «Общие» на правой панели.
  • По умолчанию Word отключает параметр «Подтверждать преобразование формата файла при открытии».
  • Установите флажок, чтобы включить эту опцию.
  • Нажмите «ОК», чтобы применить изменения и закрыть все открытые документы.
Подтверждение преобразования формата файла при открытии

Эта опция поможет вам запускать диалоговое окно всякий раз, когда вы открываете файлы в форматах, отличных от .doc или .docx. Например, если вы используете Word для открытия простого текстового файла с расширением .txt, вы получите запрос на проверку формата файла.

Связано: Как изменить имя встроенного файла в Word?

Изменить кодировку символов

Теперь откройте файл, в котором вы хотите изменить кодировку символов.Word покажет вам диалоговое окно «Преобразовать файл», как показано ниже.

Конвертировать файл

Выберите формат файла, если вам известен обычный текст или документ HTML. Если вам непонятно, выберите опцию «Закодированный текст» и нажмите кнопку «ОК». Затем вы увидите диалоговое окно «Преобразование файлов». Как правило, «Windows (по умолчанию)» выбирает кодировку в зависимости от настроек локали. Это может создать проблемы при просмотре специальных символов и знаков.

Преобразование файлов с изменением кодировки

Выберите вариант «Другая кодировка», чтобы активировать поле со списком рядом.Вы увидите список доступных в списке вариантов кодировки и выберите формат «Unicode (UTF-8)». При необходимости выберите «Вставить разрывы строк» ​​и разрешите замену символов. Нажмите «ОК», чтобы завершить процесс. Теперь вы успешно изменили кодировку символов файла на UTF-8.

Это поможет вам просмотреть содержимое файла в удобочитаемом формате, так как UTF-8 должен поддерживать большинство символов.

Отключить преобразование файлов

После того, как вы закончите изменение кодировки символов файла, обязательно отключите опцию преобразования файла.Вернитесь в «Файл> Параметры» и измените настройки в разделе «Дополнительно». Это поможет вам в будущем отключить диалог преобразования файлов.

Сохранение файлов в другой кодировке

Вы не можете изменить кодировку файла, который вы сохраняете как файл .docx. Word назначит кодировку символов по умолчанию на основе вашей региональной языковой установки или UTF-8. Однако вы можете изменить кодировку, изменив файл в текстовом формате.

  • Перейдите в меню «Файл» и выберите «Сохранить как».
  • Щелкните раскрывающееся меню «Сохранить как тип» и выберите вариант «Обычный текст».
Сохранить документ Word в виде обычного текста

Нажмите кнопку «Сохранить», и Word откроет диалоговое окно «Преобразование файлов», как описано выше. Оттуда вы можете изменить кодировку и сохранить документ.

Изменить кодировку в Word Office 365 на Mac

Подобно Windows, версия Office 365 для Mac также имеет параметры, позволяющие включить проверку формата файла и предложить преобразование.

  • Откройте документ Microsoft Word и перейдите в раздел «Word> Настройки…».
  • Щелкните «Общие» в разделе «Инструменты разработки и проверки».
  • Включите «Подтверждать преобразование формата файла при открытии» в разделе «Настройки».
  • Закройте все открытые документы, чтобы изменения вступили в силу.
Включить проверку формата файла в Mac Word

Каждый раз, когда вы открываете несовместимый файл, Word покажет вам преобразованный файл из диалогового окна параметров.

Вариант преобразования файла в Mac

Выберите «Закодированный текст» или формат файла, если вы знаете, и нажмите кнопку «ОК».В следующем диалоговом окне вы можете выбрать вариант «Другая кодировка» и выбрать кодировку «Юникод (UTF-8)».

Изменить кодировку в Mac

В отличие от Windows, здесь вы можете четко видеть предупреждающее сообщение, в котором указывается, выберите кодировку, которая делает ваш документ читаемым. Кроме того, вы можете обнаружить, что несовместимый текст отмечен красным цветом с сообщением о том, что этот текст не будет правильно сохранен с выбранной кодировкой.

Кроме того, вы также можете сохранить файл в текстовом формате, чтобы изменить кодировку в Mac так же, как в версии Windows Word.

UTF-8 Encode | Справка Алхимера

Кодирование файлов Excel в формат UTF (UTF-8 или UTF-16) может помочь обеспечить правильное чтение и отображение всего, что вы загружаете в Alchemer. Это особенно важно при работе с иностранными или специальными символами в кампаниях электронной почты, действиях с логином / паролем, списках контактов, импорте данных и тексте и переводах. Все эти функции имеют возможность получать загруженные файлы CSV.

Есть несколько разных способов получить правильную кодировку UTF, поэтому мы рассмотрим, как это сделать в более старых версиях Microsoft Excel, OpenOffice, LibreOffice, Google Drive и даже как использовать приложение Terminal для этого!

Как кодировать файлы Excel

Ниже приведены ссылки на видео и пошаговые инструкции о том, как кодировать файлы Excel в UTF-8 и UTF-16.В Excel 2011 и более поздних версиях нет параметров для кодирования файлов UTF.

В зависимости от вашей версии Excel вы можете кодировать файл в UTF-8 во время процесса Сохранить как . Это будет зависеть от вашей версии Excel, а также от того, используете ли вы Mac или ПК.

Версии Excel с 1999 по 2010 год

Посмотрите наше быстрое пошаговое видео: Кодирование видео UTF-8
  1. Перейдите к своему документу Excel.
  2. Щелкните File (или значок «Цветной круг», в зависимости от вашей версии Excel).
  3. Выберите Сохранить как и выберите формат файла Excel, который вы хотите использовать.
  4. Назовите файл и при необходимости обновите путь к файлу.
  5. Щелкните Инструменты , затем выберите Параметры Интернета .
  6. Перейдите на вкладку Кодировка .
  7. В раскрывающемся списке для Сохранить этот документ как: выберите Unicode (UTF-8) .
  8. Щелкните Ok .
  9. Щелкните Сохранить .

Excel для Mac

Хотя в старых версиях Excel для Mac нет возможности для кодирования CSV UTF-8, в последней версии Excel это довольно просто.

  1. Щелкните Файл > Сохранить как .
  2. Вы увидите диалоговое окно Сохранить . В раскрывающемся меню File Format выберите опцию CSV UTF-8.
  3. Нажмите Сохранить .

Open Office.org

Если у вас нет доступа к Excel, вы можете загрузить бесплатный пакет офисного программного обеспечения с открытым исходным кодом под названием OpenOffice. Чтобы узнать больше, посетите: http://www.openoffice.org

Краткое пошаговое видео: UTF-8 Видео Open Office

  1. Откройте OpenOffice и откройте документ Excel.
  2. Щелкните File в верхнем левом углу панели инструментов.
  3. Выберите Сохранить как .
  4. Назовите файл и при необходимости обновите путь к файлу.
  5. Сохраните ваш Тип как CSV , а затем установите флажок Изменить настройки фильтра .
  6. Щелкните Сохранить .

    Это займет некоторое время, но появится окно Экспорт текстовых файлов с дополнительными параметрами.
  7. В поле «Набор символов» выберите Unicode (UTF-8) .
  8. Нажмите ОК , и все готово!

LibreOffice

Еще одна бесплатная альтернатива Microsoft Office с открытым исходным кодом — LibreOffice. Вы можете скачать его по адресу http://www.libreoffice.org/.

  1. Откройте LibreOffice и щелкните Открыть файл слева. Выберите свой файл и Откройте .
  2. Щелкните Файл> Сохранить как … Появится следующее окно, измените Тип файла на Текст CSV и выберите параметр Изменить параметры фильтра , затем щелкните Сохранить .
  3. Появится окно с ошибкой, но не беспокойтесь об этом. Просто нажмите Использовать текстовый формат CSV .
  4. В следующем появившемся окне убедитесь, что набор символов — Unicode (UTF-8) . Это должно быть по умолчанию.
  5. Появится последняя ошибка, сообщающая, что был сохранен только активный лист. Просто нажмите ОК, и все готово!

Google Drive

Одним из широко доступных веб-решений для кодирования файлов XLS как UTF-8 CSV является Google Диск, также известный как Google Docs.Вы можете загрузить существующий файл и легко экспортировать его, выполнив следующие действия.

  1. На главном экране Google Диска нажмите New> File Upload . Выберите файл XLS и нажмите Открыть .
  2. После загрузки файла дважды щелкните его в меню, чтобы открыть предварительный просмотр файла. Затем щелкните Открыть вдоль верхней панели.
  3. Электронная таблица загрузится, теперь вы можете щелкнуть Файл> Загрузить как> Значения, разделенные запятыми (.csv, текущий лист) .Загрузка начнется немедленно.

Использование терминала

В качестве последней попытки вы можете легко преобразовать файлы в кодировку UTF-8 с помощью терминала. Вам может потребоваться загрузить эту библиотеку, чтобы использовать команду iconv.

Для начала сохраните CSV-файл на рабочем столе с кратким именем файла.

Apple OSX Steps
  1. Нажмите command + пробел, чтобы перейти в Spotlight, найдите «Терминал» и нажмите «Терминал», чтобы открыть.
  2. В командной строке введите ниже и нажмите Enter:
     cd desktop 
  3. Вставьте следующее:
     iconv -c -t utf8 filename.csv> filename.utf8.csv 
  4. Измените имена файлов, чтобы они соответствовали имени на рабочем столе, и нажмите Enter.
  5. Et Voila! Ваш файл закодирован в UTF-8. Не открывайте файл после конвертации!
Действия для Windows
  1. Перейдите в меню «Пуск», найдите «cmd» и щелкните cmd, чтобы открыть.
  2. В командной строке введите следующее (заменив имя пользователя своим именем пользователя Windows) и нажмите Enter:
     cd C: \ Users \ (имя пользователя) \ Desktop 
  3. Вставьте следующее:
     iconv -c -t utf8 имя файла.csv> filename.utf8.csv 
  4. Измените имена файлов, чтобы они соответствовали имени на рабочем столе, и нажмите Enter.
  5. Теперь ваш файл закодирован в UTF-8. Не открывайте файл после преобразования, загрузите его в нашу систему.

Фильтр: Базовый Стандарт Исследования рынка HR Professional Полный доступ Составление отчетов
Бесплатно Индивидуальный Команда и предприятие

Диалоговое окно выбора кодировки и шрифта

Диалоговое окно «Выбор кодировки и шрифта» позволяет выбрать языковую кодировку и встроенный шрифт PDF при экспорте символов Unicode в документ PDF.Они будут использоваться для отображения текста в PDF.

Информацию о задачах, связанных с этим окном, см. В разделе Об экспорте в PDF .

Параметр Описание
Выбрать шрифт

Кодировка

Позволяет выбрать тип кодировки Unicode для PDF.

Встроенные шрифты

Позволяет выбрать любой шрифт, установленный в вашей системе, для использования для всего текста в документе PDF.

Шрифт

Шрифты TrueType (TTF)

Позволяет выбрать шрифт TrueType для PDF.

Файл шрифта

набор акцентов и других символов, отличных от ASCII, с помощью Texpad

Текстовый документ, как и исходный файл tex , состоит из списка символов.Можно выбрать способ преобразования этих символов в данные и записи на диск. Это преобразование между символами в редакторе и данными на диске известно как Кодировка текста . Исторически сложилось так, что существует большое количество различных способов кодирования текста, но современные передовые практики сошлись на одной из небольшого числа кодировок Unicode (например, UTF-16 и UTF-8 ) как лучший способ сделать это. Последние версии TeX по умолчанию UTF-8 , как и Texpad.Мы настоятельно рекомендуем всем пользователям использовать UTF-8 в качестве кодировки текста.

К сожалению, нет способа определить кодировку файла из файла, информация не существует в файле. Хотелось бы, чтобы мы могли автоматически обнюхивать кодировки, но это неточный вывод, и результаты будут катастрофическими, если Texpad будет угадывать неправильно. Это означает, что Texpad должен быть настроен пользователем на правильную кодировку перед открытием файла. Почти во всех случаях это не проблема, поскольку почти все используют UTF-8 в TeX, и поскольку Texpad установлен на это по умолчанию, как и последние версии TeX.

Невозможно сохранить в этой кодировке ошибки

Помимо несовместимости с современными инструментами и пользователями, мы рекомендуем кодировки Unicode, поскольку они являются единственными кодировками, способными кодировать все символы. Если вы используете устаревшую кодировку (то есть что-то без UTF в имени), тогда будут символы, которые вы можете ввести в свой документ, которые Texpad не сможет сохранить на диск. Вы получите сообщение об ошибке от Texpad, и вам придется удалить эти символы.

Переход на Texpad с других редакторов

Известная проблема для пользователей, переходящих на Texpad из другого редактора, заключается в том, что при наборе текста LaTeX выдает ошибки, связанные с наличием символов, отличных от ascii (например, é, ü и других диакритических знаков).

Обычно это происходит потому, что Texpad по умолчанию настроен на использование кодировки UTF-8 для сохранения файлов, и пользователи часто привыкли к более старым, устаревшим кодировкам, таким как Latin-1 или MacOSRoman. Для правильного набора LaTeX замените все старые строки inputenc или fontenc на соответствующую строку UTF-8.

 \ usepackage [utf8] {inputenc} 

Обратите внимание, что это не требуется для более поздних версий MacTeX, но по-прежнему рекомендуется добавлять его.

Изменение кодировки Texpad на кодировку, отличную от UTF-8

Если у вас есть большая коллекция файлов TeX-файлов в устаревшей кодировке, вы можете заменить Texpad на более старую кодировку, а не преобразовывать файлы в актуальную кодировку UTF-8. Для этого закройте все файлы и перейдите в меню в macOS или в «Настройки редактора», «Кодировка» в iOS и выберите кодировку, соответствующую вашим файлам.

Вам нужно будет найти правильную кодировку в настройках вашего предыдущего редактора, обычно выбирается

  • Mac OS Roman при переходе с редактора MacOS LaTeX, такого как TeXShop
  • ISO Latin 1 при переходе из редактора Windows LaTeX

Мы согласны с тем, что это необходимо, когда соавтор не может или не желает модернизироваться до UTF-8 , но мы не рекомендуем идти по этому пути.Всегда лучше обновить файлы, преобразовав их в UTF-8 .

Обратите внимание, что часто вам нужно указать кодировку шрифта (вывода), а также кодировку ввода. Это следует делать только со старыми 8-битными наборными машинами, такими как pdfTeX, это не требуется при использовании современных шрифтов (например, с fontspec ) или с LuaTeX, XeTeX или TexpadTeX при работе в режиме Unicode. На самом деле в таких случаях это потенциально опасно.

 \ documentclass {article}
\ usepackage {немецкий}
\ usepackage [T1] {fontenc}
\ begin {document}
  äöüÄÖÜ Привет
\ end {document} 

Сохранение файла CSV / Excel в кодировке UTF-8– WooCommerce Product Import Export

При использовании плагина Import Export Suite for WooCommerce входной файл CSV должен быть закодирован в формате UTF-8.Это гарантирует, что все ваши типы сообщений, такие как продукты, заказы, пользователи и т. Д., Будут точно импортированы. Во время импорта вы можете избежать ненужных символов, таких как ž,? И т. Д. Если файл CSV не закодирован в UTF-8, то символы, такие как ™, ®, © и т. Д., Преобразуются в нежелательные символы.

В этой статье объясняется, как применять кодировку UTF-8 с основными приложениями для работы с электронными таблицами, такими как Microsoft Excel и Notepad для Windows и Apple Numbers и TextEdit для Mac.Поскольку Google Sheets — широко используемое приложение для работы с электронными таблицами, в этой статье также объясняется кодировка UTF-8 с Google Sheets .

Что такое кодировка UTF-8?

Символ в UTF-8 может иметь длину от 1 до 4 байтов. UTF-8 может представлять любой символ в стандарте Unicode, а также обратно совместим с ASCII. Это наиболее предпочтительная кодировка для электронной почты и веб-страниц. Это основная кодировка символов во всемирной паутине.

Вот два образца:

Образец 1: незашифрованная таблица UTF-8 Пример 2: незашифрованная таблица UTF-8

Как сохранить файл CSV в формате UTF-8 с помощью Libre Office?

Шаг 1 — Чтобы сохранить файл CSV в кодировке UTF-8, выполните следующие действия: Откройте LibreOffice и перейдите к Files в строке меню.Нажмите «Открыть» и выберите на компьютере файл, который вы хотите сохранить как файл в кодировке UTF-8.

Шаг 2 — После открытия файла перейдите в Файл> Сохранить как . В открывшемся диалоговом окне введите имя файла и выберите Text CSV (.csv) из раскрывающегося списка Сохранить как тип .

Отметьте Редактировать настройки фильтра опций.

Сохранить файл как CSV

Нажмите Сохранить .

Шаг 3 — В появившемся диалоговом окне Экспорт текстового файла выберите опцию Unicode (UTF-8) из раскрывающегося списка Набор символов .
Шаг 4 — Установите поля и разделитель текста по своему усмотрению или оставьте как есть.

Кодировать как UTF-8

Шаг 5 — Щелкните ОК .

Это сохранит файл в кодировке UTF-8 в Libre Office.

Как сохранить файл CSV как UTF-8 с помощью электронной таблицы Google?

Чтобы сохранить файл CSV в кодировке UTF-8, вы можете загрузить файл на Google Диск и легко сохранить его как UTF-8. Шаги приведены ниже:

Шаг 1 — Сначала откройте свою учетную запись Google Drive .Нажмите кнопку NEW в верхнем левом углу и выберите опцию Загрузить файлы .

Возможность загрузки файла на Google Диск

Шаг 2 — Найдите требуемый файл CSV и начните его загрузку.

Шаг 3 — Откройте загруженный файл с помощью Google Spreadsheet .

Шаг 4 — Перейдите к файлу > Загрузить как, и выберите значения, разделенные запятыми (.csv, текущий лист) option .

Скачать как вариант CSV в Google Таблицах

Загруженный файл сохраняется в кодировке UTF-8 по умолчанию и может быть правильно импортирован при загрузке в наш плагин Import Export Suite для WooCommerce .

Как сохранить файл CSV как UTF-8 в Microsoft Excel?

Шаги приведены ниже:

Шаг 1 — Откройте файл CSV с листом Microsoft Excel .

Шаг 2 — Перейдите к пункту меню Файл и нажмите Сохранить как .

Появится окно, как показано ниже:

Параметр «Сохранить как» в Microsoft Excel

Шаг 3 — Нажмите Обзор , чтобы выбрать место для сохранения файла.

Откроется окно Сохранить как , как показано ниже:

Параметр «Сохранить как» в Microsoft Excel

Шаг 4 — Введите имя файла.

Шаг 5 — Выберите Сохранить как тип как CSV (с разделителями-запятыми) (*.csv) вариант.

Шаг 6 — Щелкните раскрывающийся список Инструменты и щелкните Параметры Интернета . Появится новое окно для веб-опций, как показано ниже:

Параметры Интернета

Шаг 7 — На вкладке Кодировка выберите вариант Unicode (UTF-8) из Сохранить этот документ как раскрывающийся список .

Наконец, нажмите Ok, и сохраните файл.

Как сохранить файл CSV как UTF-8 с помощью Блокнота?

Действия, указанные ниже: Откройте файл CSV с помощью Notepad .

Шаг 1 — Откройте файл CSV с помощью Notepad .

Шаг 2 — Перейдите к файлу > Сохранить как параметр . Снимок экрана меню показан ниже:

Меню файла блокнота

Шаг 3 — Выберите место для файла.

Откроется окно Сохранить как , как показано ниже:

Параметр «Сохранить как» в Блокноте

Шаг 4 — Выберите опцию Сохранить как тип как Все файлы (*.*) .

Шаг 5 — Укажите имя файла с расширением .csv .

Шаг 6 — В раскрывающемся списке Кодировка выберите вариант UTF-8 .

Шаг 7 — Нажмите Сохранить , чтобы сохранить файл.

Таким образом, вы можете сохранить файл в формате UTF-8, закодированный с помощью Блокнота.

Как сохранить файл CSV в формате UTF-8 в Apple Numbers?

Шаги приведены ниже:

Шаг 1 — Откройте файл с Apple Numbers .

Шаг 2 — Перейдите к файлу > Экспорт в > CSV . Снимок экрана с настройками показан ниже:

Экспорт в CSV с Apple Numbers

Шаг 3 — В разделе «Дополнительные параметры» выберите вариант Unicode (UTF-8) для кодировки текста. Снимок экрана с настройками: ниже:

. Расширенные параметры в Apple Numbers

Шаг 4 — Щелкните Далее .

Дальнейшие настройки отображаются, как показано на скриншоте ниже:

Возможность экспорта в Apple Numbers

Шаг 5 — Введите имя файла и нажмите Экспорт , чтобы сохранить файл в кодировке UTF-8.

Как сохранить файл CSV как UTF-8 в TextEdit?

Шаги приведены ниже:

Шаг 1 — Откройте файл с помощью TextEdit .

Шаг 2 — Перейдите к Формат > Сделать обычный текст .

Снимок экрана меню показан ниже:

Меню форматирования в TextEdit

Шаг 3 — Перейдите к Файл > Сохраните .

Это показано ниже:

Меню файла в TextEdit

Шаг 4 — В раскрывающемся списке Кодировка обычного текста выберите Unicode (UTF-8) .

Шаг 5 — Наконец, нажмите Сохранить , чтобы сохранить файл.

По вопросам клиентов и поддержки обращайтесь в службу поддержки WebToffee.

Чтобы узнать больше о других возможностях плагина, прочтите документацию.

4.Выберите подходящие визуальные кодировки

Выбор подходящих визуальных кодировок

Как мы обсуждали в разделе «Данные», как только вы узнаете «Форма» ваших данных, вы можете закодировать ее различные размеры с помощью соответствующие визуальные свойства. Различные визуальные свойства различаются или могут быть изменен — ​​по-разному, что делает их удобными для кодирования разных типы данных. Два ключевых фактора — это то, является ли визуальное свойство естественно заказал , а сколько отличных значения этого свойства читатель может легко различить.Естественный порядок и количество различных значений укажут, Свойство visual лучше всего подходит для одного из основных типов данных: количественный , порядковый , категориальных или реляционных данных . ( Пространственные данные — еще один распространенный тип данных, обычно лучше всего представлено какой-либо картой.)

Имеет ли визуальное свойство естественный порядок, определяется является ли механика нашей зрительной системы и «программное обеспечение» в нашем мозг автоматически — непреднамеренно — назначает заказ, или ранжирует к разным значениям этого свойства.В «Программное обеспечение», которое делает эти суждения, глубоко укоренилось в нашем мозгу. и оценивает относительный порядок независимо от языка, культуры, условность или другие усвоенные факторы; это не обязательно, и вы не может [] спроектировать вокруг него.

Например, позиция имеет естественный порядок; форма не делает. Длина имеет естественный порядок; текстуры нет (но плотность узора делает). Толщина линии или вес имеют естественный порядок; стиль линии (сплошной, пунктирный, штриховой) нет.В зависимости от специфики визуальное свойство, его естественный порядок может хорошо подходить для представления количественных разницы (27, 33, 41), или порядковых номера разности (маленькие, средние, большие, громадный).

Естественный порядок не следует путать с свойства, о которых мы узнали, или социальные соглашения об их заказ. Социальные условности — мощное средство, и вы должны знать о них. их, но вы не можете зависеть от них, чтобы быть интерпретируются так же, как естественно упорядоченные свойства, которые не социальные и необразованные, и интерпретация которых не является по желанию.

Вот хитрый вопрос: Цвет ( оттенок ) а не естественно заказал в наших мозгах. Яркость ( яркость или яркость , иногда называют оттенком ) и интенсивность ( насыщенность ) есть, но сам цвет нет. Мы имеют строгие социальные представления о цвете, и есть порядок по длине волны в физическом мире, но цвет не имеет не подлежащий обсуждению естественный порядок, встроенный в мозг .Ты нельзя полагаться на то, что все согласятся, что желтый следует за фиолетовым в способ, которым вы можете положиться на них, чтобы согласиться, что четверо следующих три.

Неправильное использование цвета для обозначения порядка является повсеместным явлением; не попади в это обычная ловушка. В контекстах, где возникает соблазн использовать «заказанный цвет »(высота, тепловые карты и т. д.), рассмотрите возможность изменения яркости одна, а может, и две оси. Например, высота может быть представлена за счет увеличения темноты коричневых тонов, а не циклически радуга (см. Рисунок 4-1 [] и Рисунок 4-2 [] ).

Рисунок 4-1. Кодирование радуги приводит к карте, которую очень трудно понимать. Красный означает, что в Альпах жарче, чем в остальной части? Европа?

Рисунок 4-2. В этом примере цвета расходятся в одной точке, ясно с указанием низких, средних и высоких отметок.

Второй важный фактор, который следует учитывать при выборе визуальной собственности сколько у него различных значений , которые ваш читатель сможет воспринимать, различать и, возможно, помнить.Для Например, в мире много цветов, но мы не можем их различить отдельно, если они слишком похожи. Нам легче различать большие количество форм, огромное количество позиций и бесконечное количество числа. При выборе визуального свойства выберите тот, у которого есть номер полезных дифференцируемых значений и упорядочения, аналогичного вашему данные (см. рисунок 4-3).

Рисунок 4-3. Используйте эту таблицу общих визуальных свойств, чтобы помочь вам выбрать подходящая кодировка для вашего типа данных.

На Рисунке 4-4 показано другой способ думать о визуальных свойствах, в зависимости от того, какие данные, которые необходимо кодировать. Как видите, многие визуальные свойства могут быть используется для кодирования нескольких типов данных. Положение и размещение, а также текст, можно использовать для кодирования любого типа данных, поэтому каждый визуализацию, которую вы проектируете, нужно начинать с тщательного рассмотрения как вы их будете использовать (см. главу 5).

Рисунок 4-4. Визуальные свойства, сгруппированные по типам данных, которые они могут использовать закодировать.

Если у вас есть роскошь — оставшиеся неиспользованные визуальные свойства после вы закодировали основные параметры данных, подумайте об их использовании для избыточно кодировать некоторые существующие, уже закодированные измерения данных. В Преимущество избыточного кодирования заключается в том, что использование большего каналы для передачи той же информации в ваш мозг могут сделать получение этой информации быстрее, проще и т. д. точный. []

Например, если у вас есть строки, разделенные окончанием (стрелки, точки и т. д.), подумайте также об изменении стиля линии (пунктирная, пунктирная, и т. д.) или цвет. Если у вас есть значения, закодированные по месту размещения, рассмотрите избыточное кодирование значения яркостью или группирование областей с цвет, как на Рисунке 4-5 [] .

Рисунок 4-5. Цвет избыточно кодирует положение групп компаний в этом графике.

Чтобы быть полностью точным, на Рис. 4-5 добавлено больше цвета. четко определил группы, которые раньше не были четко определены, но эти группы являются подмножеством информации, уже предоставленной позиция.По этой причине в этом случае цвет добавляет немного больше информационная ценность за пределами простой избыточности.

Значения по умолчанию в сравнении с инновационными форматами

Стоит отметить, что существует много хороших по умолчанию кодировки и соглашения о кодировании в мир, и не без оснований. Разработка новых форматов кодирования может стоить у вас много времени и усилий, и ваш читатель может потратить много время и усилия, чтобы учиться. Зная ожидаемые значения по умолчанию для вашего отрасль, тип данных или читатель могут сэкономить вам много работы, когда это произойдет чтобы понять, как лучше всего закодировать ваши данные, и как это объяснить. вашим читателям.Однако если бы мы все время использовали существующие значения по умолчанию, не будет большого прогресса. Итак, когда следует использовать значение по умолчанию и когда вам следует вводить новшества?

В письменной форме мы часто советуем друг другу держаться подальше от клише; не используйте банальную фразу, а попробуйте найти новые способы сказать что-то. Причина в том, что мы хотим, чтобы читатель думал, что о том, что мы говорим, а клише, как правило, заставляют читателей поворачиваться мозги прочь. Однако в визуализации такое безмозглое помощь, а не помеха — поскольку это делает понимание более эффективны — поэтому условности могут быть нашими друзьями.

Примечание

Намеренное переворачивание визуальных условных обозначений с ног на голову может вызвать мозг читателя, чтобы «выбросить исключение», если хотите, и это технику можно использовать стратегически; но, пожалуйста, используйте это скудно.

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

В главе 2 мы обсудили, насколько важно осознавать, что вы создаете визуализацию для кого-то, кроме вас самих, и чтобы читатель мог приходить с мышлением или взглядом на мир, отличным от твой.

Во-первых, важно отметить, что ваша аудитория, скорее всего, состоять из более чем одного читателя .И как эти люди все индивидуальны, они могут отличаться друг от друга как они от вас, и, вероятно, будут иметь очень разное происхождение и уровни интереса к вашей работе. Может быть невозможно взять предубеждения всех этих читателей сразу во внимание. Так выберите самую важную группу, думайте о них как о своих core group, и дизайн с их учетом. Где это можно привлечь больше потенциальных клиентов без жертвуя точностью или эффективностью, сделайте это.Но, забегая вперед, позвольте нам дайте понять, что когда мы говорим читатель , то на самом деле Среднее — это типичный читатель из ядра аудитория .

Хорошо, теперь, когда мы это прояснили, давайте поговорим о некоторые аспекты мышления читателя, которые вам нужно принять во внимание учетная запись.

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

  • Читатель из вашей отрасли или за ее пределами? А как насчет других читателей за пределами основной аудитории? группа?

  • Стоит ли использовать отраслевой термин ради точности (зная, что читателю, возможно, придется его поискать), или срок работы точно так же?

  • Сможет ли читатель расшифровать любые неизвестные термины из контекст, или пробел в словарном запасе затмевает смысл всего, или часть представленной информации?

Это те вопросы, которые вы должны задать себе.Каждый и каждое слово в вашей визуализации должно служить определенной цель. Для каждого спросите себя: зачем использовать это слово в этом месте? Определите, есть ли другое слово, которое могло бы служить этой цели. лучше (или можете ли вы вообще обойтись без него), и если Итак, внесите изменения.

В связи с этим рассмотрите любое написание предпочтения читатель может иметь. Особенно в Английский язык, может быть несколько способов написания слова в зависимости от того, в какой стране он находится.Не заставляйте мозг читателя делать лишняя работа по разбору «лишних» или «недостающих» букв.

Другой контекст читателя, который следует учитывать, — это выбор цвета. Существует довольно много научных данных о том, как наш мозг воспринимает и триадный цвет, который в некоторой степени универсален, как мы видели ранее в этом глава. Но стоит упомянуть в контексте читателя предрассудки значимые культурные ассоциации , которые может нести цвет.

В зависимости от культуры, некоторым цветам может повезти, некоторым не повезло; некоторые могут иметь положительный или отрицательный оттенок; некоторые могут быть связаны с жизненными событиями, такими как свадьба, похороны или новорожденный дети.

Некоторые цвета сами по себе не имеют большого значения, но приобретают значение в паре или сгруппированном с другими цветами: в США красный и королевский синий — республиканцам и демократам; часто розовый и голубой относятся к мальчикам и девочкам; красный, желтый и зеленый светофоры.Красный, белый и зеленый цвета могут сигнализировать о Рождестве в Канаде, но патриотизм в Италии. Красный, белый и синий цвета патриотичны в несколько мест: они заставят задуматься и американца, и француза дома.

Цвета также могут иметь особое значение в сочетании с определенные формы. Красный восьмиугольник означает стоп во многих местами (см. рис. 4-6 [] ), но не всеми.

Рисунок 4-6. Этот знак остановки из Монреаля обозначен на французском, но нет. Англоговорящий, скорее всего, не поймет его значение.

Конечно, мы знаем, что существует множество вариантов способа разные люди воспринимают цвет. Это обычно называется дальтонизм но более правильно как дефицит цветового зрения или дисхроматопсия . А нарушение цветового зрения может проявляться в одном из нескольких конкретных способами.

Хотя оценки распространенности различаются между экспертами и разные этнические и национальные группы, около 7% американских мужчин испытывают какое-то расстройство восприятия цвета (женщины гораздо больше редко поражаются: около 0.4 процента в Америке). [] Дефицит красного и зеленого цветов является наиболее распространенным явлением, но также встречается желто-синий дефицит. И есть много людей, которые есть проблемы с различением близких цветов, таких как синий и фиолетовый.

Note

Отличный ресурс для помощи в выборе дружественной цветовой палитры тем, кто страдает дальтонизмом, — Цветовая лаборатория по адресу http://colorlab.wickline.org/colorblind/colorlab/. Здесь вы можете выбрать образцы цвета в группу (или ввести пользовательские Значения RGB) и имитируйте их восприятие с помощью восьми типов дисхроматопсия.Примечание: симуляция предполагает, что у вас есть типичное цветовое зрение.

Читатель из культуры, которая читает слева направо, справа налево или сверху вниз? Привычные модели чтения человека определят их движения глаз по странице по умолчанию, а порядок в котором они столкнутся с различными визуальными элементами в вашем дизайн.

Это также повлияет на то, что читатель воспринимает как «ранее» и «Позже» на временной шкале, где край, с которого производится чтение, будет «Раньше», и предполагается, что время будет идти в том же направлении поскольку ваш читатель обычно читает текст.

Это также может относиться к географическим картам: многие из нас привыкли видя, как земной шар раскололся где-то вдоль Тихого океана, с севером ориентирован вверх. Это прекрасно подходит для жителей Северной Америки, поскольку — сканирование слева направо и начиная с верхней части страницы — мы встречаем наша собственная страна почти сразу. Съезд произошел благодаря европейским картографам, которые создавали карты на протяжении сотен лет с их собственным континентом в качестве центра мира.

Иногда другие составители карт выбирали ориентацию мира карты по-разному, часто с той же целью отображения их родина с выдающимся положением (например, «Карта Юга вверх» Стюарта МакАртура, что ставит его родную Австралию в центр списка) или просто для цель исправления эффекта искажения, который заставляет Европу выглядят больше, чем есть на самом деле (например, Р. Бакминстер Фуллер «Карта Dymaxion»).

Совместимость с реальностью

Как и во многих предложениях в этой главе, важным фактором является ваш успех облегчает жизнь вашему читателю, и это во многом основан на том, чтобы сделать кодировки максимально простыми для декодирования.Один способ сделать простое декодирование — это сделать ваши кодировки вещей и отношений как хорошо согласованы с реальностью (или реальностью вашего читателя) этих вещей и отношения, насколько это возможно; это выравнивание называется совместимость . У этого может быть много разных аспекты, в том числе получение подсказок из физического мира и культурного условности.

Вещей на свете полно присущих характеристики. Это физические свойства, которые (обычно) не подлежат интерпретации или культуре, но существуют как свойства, на которые вы можете указать или измерить.Некоторые вещи больше других, имеют определенный цвет, хорошо известные места и другие идентифицирующие характеристики. Если твой кодировки противоречат или не отражают эти свойства, если они несовместимо, вы снова просите своего читателя потратить дополнительное время расшифровывать и удивляться, почему что-то «не так»; почему они не похожи от них ожидается (например, лодки и самолеты на рис. 4-7).

Рисунок 4-7. Визуальное размещение лодок над самолетами вызывает неприятные ощущения, поскольку они не выглядят такими в физическом мире.

На рис. 4-8 показан пример с http://html5readiness.com/.

Рисунок 4-8. Представление возможностей браузера.

Обратите внимание, как цвета, которые они выбрали, соответствуют значкам браузера, как показано на рисунке 4-9.

Рисунок 4-9. Представительные цвета сильно отличаются от цветов в значки браузера. Другие варианты лучше отражают значки » цвета.

Выбранные ими кодировки не очень совместимы с реальность значков и брендов браузеров.IE, с синим и желтым Значок отображается в оттенках фиолетового. Firefox, с синим и оранжевым значок отображается синим цветом. Это нормально, но любопытно, учитывая другой значки браузера, которые также содержат синий цвет и могут быть лучшими кандидатами на синяя кодировка. Safari с синим значком кодируется желтым. Хром — в нем есть красный, синий, зеленый и желтый, но нет оранжевого цвета. значок — оранжевый. Opera, с ее красным значком и соответствующей красной меткой, имеет единственную кодировку, которая имеет смысл.Улучшенный набор кодировок которые более точно соответствуют реальности значков браузера, показанных в последний столбец на рис. 4-9.

Помимо физических или естественных условностей, есть изучены , культурные условности, которые также должны быть уважаемый. На них может быть не так просто указать, но не менее важный. Обратите внимание, что, как мы советовали в разделе о естественном порядке, вы не должны полагаться на социальные или культурные условности, чтобы передать Информация.Однако эти условности могут быть очень мощными, и вы следует знать, что ваш читатель приносит их к столу. Используя их, по возможности, на подкрепить ваше сообщение будет помочь вам эффективно передавать информацию. Избегайте встречных условностей где возможно, чтобы избежать создания когнитивных диссонанс , столкновение привычной интерпретации с основное сообщение, которое вы отправляете.

Чтобы использовать цвета в качестве примера некоторых из этих усвоенных соглашений, красный и зеленый имеют сильные коннотации для плохого и хорошего, или «стоп и вперед».(См. Раздел «Цвет» в главе 6. для получения дополнительной информации об общих цветовых ассоциациях.) Помимо цвета, учитывайте культурные особенности соглашения о пространственных представлениях, например о том, что слева и справа означает политически, или значение выше и ниже. Также учтите культурные соглашения о значении или квадрате против круглого, и яркий против темного.

Все виды метафорических интерпретаций культурно укоренился. Проницательный дизайнер подумает об этих возможных интерпретации и работать с ними, а не против них.

Направление — интересное свойство для рассмотрения, поскольку оно имеет как врожденные, так и усвоенные условности. Сколько раз ты смотрел на карте аварийного выхода в коридоре, и понял, что выход, отображался слева на карте, в действительности был справа от вас, потому что карта была перевернута относительно направления, в котором вы были облицовка? [] Вы также можете столкнуться с картами, которые по разным причинам не указывайте север вверху карты.Хотя карта может быть полностью точный и не нарушающий совместимость с физической реальностью, это нарушение культурных традиций может быть чрезвычайно дезориентирует.

Человеческий мозг удивительно хорош в выявление закономерностей в мире. Мы легко узнаем сходство в формы, положение, звук, цвет, ритм, язык, поведение и физические рутина, просто чтобы назвать несколько переменных. Эта способность распознавать паттерны чрезвычайно эффективны, так как позволяют нам идентифицировать стимулы , с которыми мы сталкивались ранее, а предсказывают поведение на основе того, что произошло в последний раз, когда мы столкнулись похожий образец стимула.Это основа языка, общение и все обучение. Умение распознавать закономерности и учиться у них позволяет нам замечать и реагировать, когда мы слышим звук нашего имени, сбежать по лестнице, не причинив себе вреда, и выделять слюну, когда мы чувствуем запах готовящейся пищи.

Следовательно, мы также замечаем нарушения узоры . Когда картинка кривая, друг звучит проблемы, машина припаркована слишком далеко на улице, или майонез пахнет неправильно, шаблоны, которые мы ожидаем, нарушаются, и мы не могу не заметить таких исключений.Мигающие огни и жилеты безопасности специально разработаны, чтобы выделяться на фоне фон — мы замечаем их, потому что они являются исключениями из норма.

Практически это паттерн и паттерн-нарушение признание имеет два основных значения для дизайна. Во-первых, что Читатели заметят закономерности и предположат, что они преднамеренно, независимо от того, планировали ли вы существование паттернов или нет. В во-вторых, когда они воспринимают закономерности, читателя также ожидайте, что нарушения шаблонов будут значимыми .

Как дизайнеры, мы должны тщательно продумывать выкройки. и нарушения шаблонов, которые мы создаем. Не назначайте произвольно должности или цвета, соединения или шрифты без каких-либо рифм или причин для вашего выбора, потому что ваш читатель всегда будет думать, что вы под этим что-то подразумевали. Если вы измените порядок или состав списка элементов, либо в тексте или при размещении, это будет восприниматься как значимое. Если вы измените кодирование элементов по положению, форме, цвету или другим методам, оно будет восприниматься как значимый.

Итак, как вам избежать потенциальной ловушки намека на смысл? где ничего не предназначено? Все сводится к трем простым правилам.

  • Будьте последовательны в членстве, заказе и т. Д. кодировки.

  • Одно и то же должно выглядеть одинаково.

  • Разные вещи должны выглядеть иначе.

Звучит просто, но нарушения этих правил где угодно. Вы, вероятно, уже можете придумать некоторые из них и, вероятно, начните замечать больше примеров в своей повседневной жизни.Поддержание последовательность и намерение при кодировании значительно улучшат доступность и оперативность вашей визуализации, и, как и любой другой хорошая привычка, в конечном итоге облегчит вам жизнь.

Так же, как мы не пишем кандидатские диссертации в форме сонетов, или благодарственные письма, например юридические справки с цитатами из сносок, важно, чтобы структура вашей визуализации соответствовала вашему данные.

Структура визуализации должна раскрывать что-то о базовых данных.Возьмем, к примеру, одну из самых классические визуализации данных: Периодическая таблица элементов (рис. 4-10 [] ). Это, пожалуй, одна из самых элегантных визуализаций. когда-либо сделал. Он требует сложного набора данных и делает его простым, организованным и прозрачный. Элементы расположены в порядке атомного номера, а Оборачивая строки в стратегических точках, таблица показывает, что элементы в различные категории встречаются через регулярные промежутки времени, или периода .Таблица упрощает понимание природа каждого элемента — как индивидуально, так и по отношению к другому известные нам элементы.

Рисунок 4-10. В этой интерпретации классической таблицы хорошо используются цвета и линия.

Возможно, из-за своей элегантности и символичности Периодическая таблица также одна из наиболее часто имитируемых визуализаций. Дизайнеры и сатирики постоянно переделывают привычные ряды и столбцы для демонстрации коллекций всего, от шрифтов до видеоигр контроллеры, и, как ни странно, методы визуализации.Это явление особое раздражение вашим авторам именно потому, что это нарушает важный принцип выбора подходящей конструкции. С возможное (но сомнительное) исключение из Периодической таблицы Андрея Плоткина of Desserts, [] проектировщика-подражателя используют периодическую структуру для отображения данные то непериодические . Их просто так много производные попытки сообразительности.

Предупреждение

Если вы используете определенную структуру, чтобы быть милой или умной, ты делаешь это неправильно.

Если у вас возникнет искушение использовать формат таблицы Менделеева для непериодические данные, вместо этого рассмотрите двухосный график или таблицу рассеяния, где оси хорошо согласованы с важными аспектами ваших данных. Это приведет вас к более точному и менее производному окончательному продукт. []

Кроме того, мы должны порекомендовать вам другие фолианты (мы предлагаем книги Яу и Косслин, перечисленных в Приложении А к начнем с и Bertin для более преданных читателей), чтобы помочь вам выбрать только правильная структура для ваших конкретных обстоятельств; как вы можете видеть из На рис. 4-11 тоже есть многие, чтобы обратиться к каждому непосредственно в рамках этой короткой книги.Но вот несколько общих принципов и распространенных ошибок, которые помогут вам процесс выбора. C

Сравнения Необходимо сравнить

Если вы хотите разрешить сравнение значений, установите представления эквивалентными способами, а затем поместите их близко вместе . Вы не стали бы просить людей посмотреть на две версии фото в разных комнатах; вы бы поставили их рядом. То же самое для визуализаций, особенно с количественными показателями.Если хочешь люди, чтобы иметь возможность осмысленно сравнивать ценности, ставить их как можно ближе к друг друга, насколько это возможно.

Другой важный принцип сравнения — принцип консервация . Так же, как если бы вы изолировали переменные в клиническом испытании путем сравнения тестовой группы с контрольной группой, которая похожа на тестовую группу, за исключением одной переменной — вам нужно изолировать визуальные изменения путем сохранения других условий, так что изменение может быть легко и справедливо интерпретируется.

Хороший пример этого — сравнение двух графиков. Остерегайтесь того, что шкалы, которые вы используете на своих осях, чтобы читатель мог справедливо интерпретировать данные графика. Если один график имеет шкалу от 0 до 10, а другой — шкала от 0 до 5 (рисунок 4-11), наклоны отображаемые на графиках будут сильно отличаться для одних и тех же данных. С использованием неравные шкалы для данных, которые вы пытаетесь сравнить, делает сравнение намного сложнее.

Рисунок 4-11. Те же данные выглядят более плоскими (вверху) или более крутыми (внизу) в зависимости от выбранных масштабов.Если бы мы пытались сравнить эти наборы данных, неравные оси будут вносить искажения, которые сравнение сложнее.

Некоторые структуры плохи по своей сути

Некоторые форматы просто плохие , и никогда не должны использоваться при любых обстоятельствах. Многие из форматов, которые попадают в это категория делают так потому что они искажают пропорции . Есть определенные вещи, в которых наш мозг умеет и не умеет: Например, мы не умеем сравнивать длину изогнутых линий и участки поверхности полей неправильной формы.По этой причине концентрические круговые графики (см., например, http://michaelvandaniker.com/blog/2009/10/31/visualizing-historic-browser-statistics-with-axiis/) являются одними из худших нарушителей в мире представления данных конструкции. []

Если я покажу вам часть кольца посередине, которая представляет огромный процент, он все равно выглядит объективно короче, чем отрезок внешнее кольцо, которое может составлять гораздо меньший процент. Также, завернутые в круг все эти строки затрудняют все равно сравните их длину.Только так вы действительно сможете понять информация, представленная на этом графике, предназначена для чтения процентных чисел в этикетках. В этом случае у нас может быть просто таблица числа — так будет быстрее читать и проще сравнивать с участием.

Аналогичным образом, формат круговой диаграммы, известный как Соловьиная роза (для его создателя, Флоренции — см. рис. 4-12), почти полностью бесполезен. Сравнение площадей нарезанного пирога клинья сделать точно невозможно.Линейные графики или столбик с накоплением графики служили бы намного лучше.

Рисунок 4-12. Соловьиная роза.

К сожалению, этот формат все время изобретают заново. современных контекстов. См. Рис. 4-13 для одинакового бесполезная реализация с использованием одних и тех же клиньев разного размера.

Рисунок 4-13. Радиальная компоновка искажает данные и отображает использование диска карта совершенно неэффективна для всех, кроме самых грубых сравнений.

Некоторыми хорошими структурами часто злоупотребляют

Есть плохие форматы, а есть хорошие форматы часто неправильно использованный.Как и Периодическая таблица, круговые диаграммы полезны для очень конкретная цель, но быстро превращается в бесполезную пародию при написании в расширенный сервис.

Особенностью круговой диаграммы является сравнение, в частности, сравнение нескольких частей с большим целым. Мы уже установили выше в нашем обсуждении концентрических круговых графиков и Соловья Розы, которые человеческий мозг не умеет сравнивать по длине и поверхности участки искривленных или неправильной формы полей; круговые диаграммы падают прямо в эту категорию.

Еще одна распространенная ошибка — использование географической карты для любых и все данные, которые включают измерение местоположения. Иногда использование карты на самом деле исказит ваше сообщение — например, когда поверхность каждый регион не соответствует вашим данным о населении (см. раздел о физической реальности в главе 5). Если твой данные привязаны к населению, но ваше отображение основано на размере региона, пропорционально большая площадь поверхности некоторых регионов может привести к раздуванию появление трендов в этих регионах.Подумайте об использовании стола или бара график вместо этого.

Примечание

Если вы хотите показать региональные тенденции, помните, что вы не необходимо расположить штаты или страны в алфавитном порядке; это нормально сгруппируйте их по регионам или по какой-либо другой подходящей оси.

Сохраняйте простоту (или вы можете выглядеть) глупо

Мы говорили о тщательном выборе визуального контента в Главе 3 и поговорим о выборе и применении кодировок в главе 6.Но редактирование (в смысле минимизация шума для максимального увеличения сигнала) также является ключевой концепцией. ум для выбора полезной конструкции (и сохраняя это полезно).

Рассмотрим рисунок 4-14, на котором организационная структура разработана в 2010 году Объединенным экономическим комитетом. меньшинство, республиканцы. Таблица под названием «Ваша новая система здравоохранения» изображает предлагаемую Демократической партией систему здравоохранения и отображает ошеломляющее количество новых правительственных агентств, постановлений и мандаты, представленные запутанной паутиной форм и линий.

Рисунок 4-14. Это представление плана здравоохранения явно упивается и стремится преувеличить сложность системы.

Совершенно очевидно, что политические мотивы доминировали в варианты дизайна для этой визуализации; он явно попадает в категория навязчивой визуализации (а не информативной). В Сама диаграмма не оставляет читателю никакой актуальной информации, кроме чем: «Ух ты, эта система сложная». Когда мы рассматриваем название пресс-релиз, в котором это было обнародовано: «America’s New Health Care Система раскрыта »- мы знаем, что виновные ведут себя неискренне.

Гражданин-дизайнер Роберт Палмер взял на себя создание другое, более четкое визуальное представление того же предполагаемого здоровья план ухода (рис. 4-15 [] ). Его диаграмма разительно отличается от созданной меньшинством Объединенного экономического комитета.

Палмер объяснил свои мотивы в открытом письме конгрессмену Джону Бонер (R-OH) на Flickr (http://www.flickr.com/photos/robertpalmer/3743826461/):

Выпустив свою диаграмму, вместо того, чтобы осмысленно обучать public, вы намеренно запутали и без того сложное предложение.Простого предложения по решению этой проблемы нет. Вместо этого вы выбрали кричать «12! 16! 37! 9! 24! » пока мы пытались считать что-то. []

Рисунок 4-15. Представление Палмером того же плана медицинского обслуживания не чрезмерно упрощен, но его гораздо легче разобрать.

Нет сомнений в том, что национальное здравоохранение — дело сложное, и это очевидно в обоих дизайнах. Но интерпретация Палмера явно направлена ​​на сократить эту сложность до ее сущностной природы с целью упрощает понимание , а не целенаправленно затуманивать происходящее под абстрактным слоем.Этот является отличительной чертой эффективного редактирования.

Иногда дизайнер усложняет визуализацию чем это должно быть, не потому, что он пытается испортить данные, но по совершенно противоположной причине: он хочет, чтобы данные выглядели так же хорошо насколько возможно. Это столь же серьезная ошибка.

Ваши данные важны и значимы сами по себе; ты не нужно сделать его особенным, пытаясь придумать. Каждая точка, линия и слово должен служить коммуникативной цели: если он посторонний или вне объем целей визуализации, он должен идти.

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *