Какая кодировка символов по умолчанию?

8

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

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

Меня также интересует, как строки представляются по умолчанию для скриптов bash или python.

gabkdlly
источник
Это хороший вопрос, особенно если вы перешли с Windows и добавили исходный код в какую-то систему контроля версий. После перехода на Ubuntu у вас могут неожиданно появиться нечитаемые специальные символы, поскольку Windows обычно не использует UTF-8.
Bananeweizen

Ответы:

3
  • Кодировка имен файлов в файловой системе - utf-8.
  • Bash думает в байтах, а не со знанием строк. Так что нет кодировки по умолчанию. Кодировка по умолчанию для терминала gnome: utf-8
  • Кодировка Python по умолчанию - ascii
Деннис Каарсемакер
источник
Python 3 (я думаю?) По умолчанию переходит на юникодные строки.
Broam
Тип str () в Python 3 - это объект Unicode в кодировке UCS-2 или UCS-4 для внутреннего использования. Способ чтения или записи данных, например, из файлов и стандартного ввода, определяется разработчиком приложения / библиотеки, причем стандарт utf-8 является стандартным (например, print (some_str) выведет представление utf-8).
Деннис Каарсемакер
Python 3 будет работать с Unicode, как Ruby 1.9 Python 2 и менее, как Ruby 1.8 и менее, основан на ascii и работает со всеми кодировками, но их представление о количестве символов для строк Unicode неверно. (что обычно не проблема)
Ральф
3
gnome-терминал по умолчанию не использует utf-8; он просто использует то, на что настроен ваш язык. (Как я недавно обнаружил трудный путь.)
frabjous
1
@DennisKaarsemaker Нет, Python3 не оставляет кодирование только для разработчика и использует по умолчанию UTF-8. Например, Stdin и -out используют кодировку окружения по умолчанию!
Роберт Симер
7

Кодировка символов по умолчанию - UTF-8 (Unicode), хотя почти все (возможно, все при установке по умолчанию) имена файлов являются обычными символами ASCII, общими для большинства кодировок.

Я не знаю, что вы подразумеваете под "сколько строк представлено скриптом bash или python". Вы можете использовать символы Unicode в скриптах bash в Ubuntu, но обычно с помощью скрипта bash вы вызываете другие программы, и будут ли обрабатывать их другие программы, это другой вопрос. Это, безусловно, возможно сделать и с Python, хотя вы захотите ознакомиться с пакетами и настройками, связанными с ними.

радостный
источник