2012-04-25 1 views
1

Я возвращаюсь в разработку и хочу найти хороший редактор для HTML5/JQuery.Почему Netbeans, Aptana Studio и Komodo Редактировать все, что не удалось сохранить в UTF-8?

Важное значение имеет возможность сохранения файлов в UTF-8.

Однако, хотя я поставил свой проект в NetBeans 7.0 для кодирования в UTF-8, когда я создаю файл в проекте, а затем посмотреть на него в Notepad ++ файл закодирован в ANSI, и я должен вручную установить кодировку UTF-8:

enter image description here

в Aptana Studio 3 Я установил рабочее пространство UTF-8 кодировке, и мой проект наследует от этого, но когда я создаю файл в проекте и посмотрите на него в Notepad ++, он закодирован в ANSI, и мне нужно изменить кодировку вручную на UTF-8:

enter image description here

Так что я попытался Komodo Edit 7 и в файле вручную установить кодировку UTF-8, сохранил файл, посмотрел на него в блокноте ++, который сказал, что файл находится в ANSI.

enter image description here

Я заметил, в любом из этих редакторов, если я поставил немецкий Умляут символ в файле, то Notepad ++ показывает, как «ANSI в UTF-8», но я все равно придется вручную изменить его UTF- 8 в Notepad ++, где он останется.

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

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

Как я могу заставить эти редакторы сохранять свои файлы в кодировке UTF-8?

ответ

3

UTF-8 кодированный файл, который содержит только символы, также присутствующие в таблице ASCII (первые 128 символов Юникода, т. Е. Ваши основные буквенно-цифровые символы) неотличимы от файла ASCII/ANSI. Я предполагаю, что Notepad ++ просто не может сделать различие (потому что его нет) и по умолчанию используется ANSI. Вы можете видеть разницу, когда вы включаете символ, который не находится в таблице ASCII. Под «ANSI as UTF-8» я могу только предположить, что это означает, что «эти документы содержат символы из таблицы ANSI (a.k.a. Latin-1) и сохраняются в UTF-8».

Другими словами, ваши IDE, вероятно, прекрасны, проблема с Notepad ++.

Попробуйте символ, подобный 漢字, что приведет к довольно уникальной последовательности байтов UTF-8, это, безусловно, не ANSI.

+0

В Aptana, когда я создаю и сохраняю файл с текстом «漢字 lkdfjsdlfksjdlfksdää», в Notepad ++ он отображается как «ANSI as UTF-8». Когда я открою файл в Windows7/Блокнот, добавьте «aaa» и сохраните файл, затем Блокнот покажет файл как UTF-8. Я думал, что текстовые файлы сохранили эту информацию в первых трех символах или спецификации, хотя теперь я вижу, что в Aptana нет способа указать «Спецификация UTF-8», а просто «UTF-8». –

+1

UTF-8 не требует спецификации. Фактически, спецификация недоказана в UTF-8, поскольку UTF-8 намеренно сконструирован так, чтобы быть обратно совместимым с ASCII. Возможно, это то, что означает «ANSI как UTF-8». Я знаю, что Notepad любит добавлять спецификацию независимо. – deceze

+0

Этот ответ правильный. Notepad ++ попытается определить кодировку файла на основе того, что находится в файле, когда нет спецификации. Это не всегда так. Если вы введете некоторые символы тайского языка в свой файл, notepad ++ угадает ANSI, даже если вы попытаетесь «преобразовать в utf8 без спецификации», – Frug

1

Из того, что я видел по этой теме, UTF-8 Notepad соответствует UTF-8 Notepad ++, что означает включение BOM.Если файл сохранен с этой кодировкой и открыт в NetBeans, на самом деле будет отображаться символ - или  для последовательности BOM (в зависимости от того, установлена ​​ли кодировка для проекта или IDE в UTF-8.) Но если вы сохраните файл в Notepad ++, закодированный как «UTF-8 без спецификации», и либо ваш проект, определенный как UTF-8, либо включите ваши netbeans_default_options с этим -J-Dfile.encoding=UTF-8, вы увидите, что я считаю UTF-8, как и должно быть. К сожалению, если вы попытаетесь отредактировать этот файл в NetBeans, не включая символы, которые находятся за пределами набора ANSI, вы увидите поведение, о котором вы говорили в своем вопросе, с файлом с его кодировкой, установленным в ANSI.

Так что, пытаясь сделать это «своего рода» ответом на ваш вопрос, помните, что не все редакционные концепции UTF-8 одинаковы. Notepad ++ дает самую актуальную информацию о том, что такое настоящая кодировка для файла. Я бы сказал, что разработка в среде Linux или Mac может быть хорошим выбором для обеспечения правильности локализации, но в Windows достойным решением может быть просто включение в файл символа, отличного от ANSI, для обеспечения его всегда получить как файл UTF-8 (не-BOM). Кстати, все это относится к разработчику NetBeans. Я не тестировал это с другими, хотя я готов поспорить, что они правильно сохранят файл на машине Windows, если в них есть символы, отличные от ANSI. Извините за банду kluge, но в любом случае, я надеюсь, что это поможет кому-то бороться с этой же проблемой.

 Смежные вопросы

  • Нет связанных вопросов^_^