Может ли gedit создать файл Unicode?
С помощью bless
Я вижу свои gedit
Выход ASCII. Можно gedit
обрабатывать какой-то Unicode?
2 ответа
Когда вы нажмете "Сохранить как", в нижнем левом углу вы увидите несколько кодировок, выберите "Добавить и удалить" (последняя запись), и вы получите список доступных кодировок, включая различные кодировки Юникода.
ht tps://i.s tack.imgur.com/CELLJ.png
Итак, я дал Бруни скриншот для их ответа, чтобы показать, что они имели в виду. Но потом я проверил результат. Вы действительно можете выбрать кодировку 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.
TL; DR
Не волнуйтесь, ваши текстовые файлы "ASCII" являются замаскированными файлами UTF-8 (их UTF-8-сущность не может быть обнаружена) и будут проанализированы, как вы хотите и ожидаете.
* Вы были достаточно заинтересованы, чтобы спросить, поэтому, возможно, вы уже понимаете, что автор этой статьи говорит нам. Эта часть объясняет больше о кодировании и, в частности, почему ASCII!=UTF-8
и почему вам нужно знать, как вы закодировали свой текст. Я извлек:
Единственный самый важный факт о кодировках
Если вы полностью забудете все, что я только что объяснил, пожалуйста, запомните один чрезвычайно важный факт. Не имеет смысла иметь строку, не зная, какую кодировку она использует. Вы больше не можете засовывать голову в песок и делать вид, что "простой" текст - это ASCII.
Там нет такого понятия, как обычный текст.
Если у вас есть строка, в памяти, в файле или в сообщении электронной почты, вы должны знать, в какой кодировке она находится, или вы не можете ее интерпретировать или правильно отобразить для пользователей.
Почти каждая глупая "мой сайт выглядит как бред" или "она не может читать мои электронные письма, когда я использую акценты", сводится к одному наивному программисту, который не понимает простой факт, что если вы не скажете мне, Строка кодируется с использованием UTF-8 или ASCII или ISO 8859-1 (латиница 1) или Windows 1252 (западноевропейская), вы просто не можете правильно ее отобразить или даже выяснить, где она заканчивается. Существует более ста кодировок и выше кодовой точки 127, все ставки выключены.
** Забавный факт: @ByteCommander указал мне, что file
только просматривает первые 50-100kb файла, поэтому если в начале текстового файла есть символы, отличные от ASCII, то file
все еще будет думать, что это ASCII.