Используя bless
, я вижу, что мой вывод gedit
- ASCII. Может ли gedit
обработать какой-нибудь Unicode?
При нажатии на сохранить Как на левом нижнем углу Вы доберетесь, некоторая кодировка, чтобы выбрать из, выбрать добавляет и удаляет (последняя запись), и Вы доберетесь до списка доступной кодировки включая различную unicode кодировку.
Так, я дал Bruni снимок экрана для их ответа для показа то, что они имели в виду. Но затем я протестировал результат. Можно действительно выбрать кодировку UTF-8 в gedit или любой другой текстовый редактор. Однако, если эти файлы не содержат символы неASCII **, они будут обнаружены как ASCII. Действительно, то же содержит, если Вы создаете "простой текст" (сомнительный термин*) файл каким-либо методом, и этот ответ имеет причину:
Когда все Ваши символы <128 ASCII и UTF-8 являются тем же. ASCII является подмножеством UTF-8 (и также подмножеством latin1 и многих других форматов кодирования).
Я бросаю вызов любому тестировать этот ответ; я могу только создать текстовый файл "UTF-8" в своей системе путем добавления символов неASCII к нему, даже при том, что все мои терминалы, все мои текстовые редакторы и мой locale
установлены на UTF-8:
$ echo unicorns > rainbows; file rainbows
rainbows: ASCII text
перенаправление echo
создает файл это file
говорит ASCII (попробуйте его сами!)
$ echo ユニコーン >> rainbows; file rainbows
rainbows: UTF-8 Unicode text
Добавление символов неASCII автоволшебно изменяет кодирование? Нет, просто вызывает file
видеть, что действительно, кодирование является UTF-8, потому что это больше не может ограничиваться ASCII.
Не волнуйтесь, Ваши текстовые файлы "ASCII" являются скрытыми файлами UTF-8 (их UTF-8-ness не может быть обнаружен), и будет проанализирован, как Вы хотите и ожидаете.
*Вам было интересно достаточно для выяснения, поэтому возможно, Вы уже понимаете то, что писатель этой статьи говорит нам. Эта часть объясняет больше о кодировании, и конкретно почему ASCII!=UTF-8
и почему необходимо знать, как Вы закодировали свой текст. Я извлек:
Единственный самый важный факт о кодировке
Если Вы полностью забываете все, что я просто объяснил, помните один чрезвычайно важный факт. Не имеет смысла иметь строку, не зная, какое кодирование это использует. Вы больше не можете прятать голову в песок и притворяться, что "простым" текстом является ASCII.
Нет такой вещи как простой текст.
Если у Вас есть строка, в памяти, в файле, или в электронном письме, необходимо знать, в каком кодировании это находится, или Вы не можете интерпретировать его или отобразить его пользователям правильно.
Почти каждое глупое "мой веб-сайт похоже на мусор" или "она не может прочитать мои электронные письма, когда я использую диакритические знаки" проблема, сводится к одному наивному программисту, который не понял очевидный факт, что, если Вы не говорите мне, кодируется ли конкретная строка с помощью UTF-8 или ASCII или ISO 8859-1 (латинский 1) или Windows 1252 (западноевропеец), Вы просто не можете отобразить его правильно или даже выяснить, где это заканчивается. Существует более чем сто кодировок и выше кодовой точки 127, все ставки выключены.
** Забавный Факт: @ByteCommander, на который указывают мне это file
только смотрят первый 50-100kb из файла, поэтому если существуют символы неASCII, далекие с начала текстового файла, то file
будет все еще думать, что это - ASCII.
gsettings
не работает. – pomsky 21 October 2017 в 22:49