Подтвердить что ты не робот

Если исходный код сохраняется в формате UTF-8

Насколько важно сохранить исходный код в формате UTF-8?

Eclipse в Windows по умолчанию использует кодировку символов CP1252. Формат CP1251 означает, что символы не UTF-8 могут быть сохранены, и я видел это, если вы скопируете и вставьте из документа Word для комментария.

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

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

(update) Какую цель вы ставите? Чтобы найти наилучшую практику, спросите, почему мы должны использовать UTF-8, у меня есть хороший ответ, прямо сейчас я этого не делаю.

4b9b3361

Ответ 1

Какую цель вы ставите? Балансируйте свои потребности против плюсов и минусов этого выбора.

Преимущества UTF-8

  • позволяет использовать все символьные литералы без \uHHHH экранирования

UTF-8 Против

  • с использованием символов символов, отличных от ASCII без \uHHHH, увеличивается риск повреждения символов
    • могут возникнуть проблемы с шрифтом и клавиатурой.
    • необходимо документировать и принудительно использовать UTF-8 во всех инструментах (редакторы, скрипты сборки компиляторов, инструменты diff)
  • остерегайтесь отметки порядка байтов

ASCII Pros

  • символьные/байтовые отображения разделяются широким диапазоном кодировок
    • делает исходные файлы очень портативными.
    • часто устраняет необходимость указания метаданных кодирования (поскольку файлы были бы идентичны, если бы они были перекодированы как UTF-8, Windows-1252, ISO 8859-1 и большинство вещей, не относящихся к UTF-16 и/или EBCDIC)

ASCII Cons

  • ограниченный набор символов
  • это не 1960-е годы

Примечание. ASCII является 7-битным, а не "расширенным" и не путать с Windows-1252, ISO 8859-1 или чем-либо еще.

Ответ 2

Важно, по крайней мере, что вы должны быть совместимы с кодировкой, используемой для предотвращения посевов. Таким образом, нет, X здесь, Y там и Z в другом месте. Сохранить исходный код в кодировке X. Установить ввод кода в кодировку X. Установить вывод кода в кодировку X. Установить передачу на основе символа FTP в кодировку X. Etcetera.

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

Ответ 3

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

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

Даже в проектах, использующих JNI, ваши источники C обычно будут в US-ASCII, который является подмножеством UTF-8, поэтому наличие обоих в одной IDE не будет проблемой.

Ответ 4

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

Ответ 5

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

1) Выберите кодировку, поддерживающую цепочку инструментов. Это намного проще, чем раньше. Даже в недавней памяти многие компиляторы и языки в основном поддерживали только ASCII, которые более или менее принуждали разработчиков к кодированию на западноевропейских языках. В наши дни многие из новых языков поддерживают другие кодировки, и почти все достойные редакторы и IDE поддерживают чрезвычайно длинный список кодировок. Тем не менее... есть достаточно достаточно, которые вам нужно проверить дважды, прежде чем устанавливать кодировку.

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

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