UTF-8 без BOM

У меня беда какая-то странная случилась с Notepad++ и конвертацией php-файлов в UTF без BOM.

На локальном сервере конвертирую php-файлы, – всё нормально.

После загрузки на ftp-сервер большая часть php-файлов почему то превращается в ANSI, причем не все файлы, а именно те, которые работают с базой данной.

Проверил комп на вшивость, – чист!

Перед сохранением и конвертацией файлов очищаю кэш редактора от всех событий и сохраняюсь – та же самая ерунда, большая часть в ANSI остается. А раньше то всё нормально было… как положено, если в UTF – то в UTF!

Теперь вот голову ломаю, почему некоторые файлы сохраняются нормально с конвертацией, а некоторые нет?

Может быть кто уже сталкивался с подобным явлением? Что творится то?

Может поменять ftp-клиента?

в фтп клиенте выберите другой режим – бинарный

В общем, тут другая беда… не в фтп клиенте. Менял, разные пробовал.
Когда в NP++ после сохранения в UTF-8 без BOM открываю этот же файл, он остается в ANSI.
Я пользовался версией Notepad++ 4.2.1… Всё нормально работало.
Вчера заглянул в данные, там уже версия 5.1.0
Автоматическое обновление что-то сломало в работе с плагинами.
Решил переустановить программу. В момент переустановки выдало множество сообщений, что данная версия несовместима со многими плагинами. Там же и ANSI оказался в списке.

В поисках ответа нарыл в сети несколько программ, которые в пакетном режиме прогоняют все файлы в UTF-8, затем опять в же в пакетном режиме вторым кругом удаляют метку ВОМ.

Convert files to UTF-8 encoding – http://pepinator.tym.cz/download/UTF8_convert.php

utf8-bom-remover.exe – от компании Infine.ru

UTF_Tool.exe – нагуглил
…и много другой разной другой мелочи.

Из этой мелочи различных PAD’ов попался интересный экземпляр по работе с UTF
BabelPad (Unicode Text Editor for Windows) – http://www.babelstone.co.uk/Software/BabelPad.html

Одна из утилит оказалась то, что надо.
Unifier 4.0 Unicode Converstion Tool
http://www.melody-soft.com/
– Прогоняет все файлы в пакетном режиме сразу в UTF-8 без ВОМ (там же еще куча других вариантов кодировок), но она с ограничениями на количество файлов и размер. Денежку надо выложить за рабочую версию. На днях нужно будет раскошелиться и приобрести (таблеток пока что в сети нету)

В процессах освоения азов UTF нарыл у себя в темп каталоге системы
интересный экземплярчик трояна на 8 мегабайт… – hlktmp (водится обычно в windows/temp или других temp каталогах)

Пришлось осваивать и его.

Присуждает права на некоторые системные ресурсы и ничем его не вытравить обычными средствами. Если он завелся, то ищите и маму его… к сожалению у мамы много имен. Следы файлов оставляет также в файлах корзины RECYCLER на всех дисках. там же сидит и лог файл с другом MountPointManagerRemoteDatabase, который очень быстро увеличивается в размерах при активной деятельности. Методы борьбы Unloсker’ом и далее ручками. Unloсker Вам сам покажет, где и мама сидит. К сожалению, более детальную информацию я в сети не нашел, что это и как с этим бороться… но, пока что тишина на дисках.

Так вот эта маленькая гадина являлась прямой причиной всей нервотрепки с попыткой переустановить Notepad в нормальный рабочий режим.

За то теперь немного владею информацией, что такое UTF, какими инструментами пользоваться и кто такие гады троянские (за 8 лет работы в сети впервые подловил что-то серьезное, о чем даже антивирусы неведают)

Пользуйтесь Notepad2. С ним проблем нет. Проверено.

у Notepad++ была одна глючная версия весной. её пофиксили в течении 2 дней вроде бы. вам просто жудко с ней "повезло"

Notepad2 пробовал… что-то в работе с ним у меня какие-то психологические проблемы возникают… – в депрессию он меня бросает 🙂

После Notepad’a++ уже ничего другого не хочется!

… кстати, на счет фтп-клиента.
Тут на днях такой косяк выпал. Загрузил файлы картинок с расширениями в верхнем регистре .JPG
Ну недосмотрел!!! фтпэшник взял да и перевел все имена файлов в нижний регистр… На страничках только рамки от картинок остались. Ручками править свыше 1000 картинок?!

Под руки попался изумительный инструмент для массового изменения имен файлов: – Ant Renamer (фри)
http://www.antp.be/software/renamer/download

Может быть кому-нибудь еще пригодится на такой вот пожарный случай…

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

… клиента звали Total Commander
При добавлении закачки нужно было снять галочку с чекбокса "Переводить имена файлов в нижний регистр"
Вообще то я всегда пользовался CuteFTP pro… Но последнее время он болеет малость. Пришлось использовать что под руки попадется… Попался Коммандер 🙂

Тож заметил такой прикол у Нотепада2.
Но. Но – он оставляет ansi только в случае если не добавлялся русский текст
или не менялся сам файл. В остальном вполне корректная работа.

… что-то у меня от UTF-8 без BOM начинается тихая африканская истерика…

Вот есть файлик в формате php:
http://www.filehoster.ru/files/br3883

Пробовал его конвертить на разных компьютерах с разными программами…
Ну не конвертится он в UTF-8 без BOM!!! Во что угодно превращается, кроме UTF-8 без BOM!!!

… 🙁

А в нем есть хоть одна нелатинская буква?

А если это файл чистого кода, то как же тогда быть?
***
проставлять комменты на русском?
<!– Конец

А если "файл чистого кода", то не должно быть никакой разницы между utf-8 и cp1251 (а также еще хреновой тучей однобайтовых кодировок).

А если файл ANSI инклудит в себя UTF-8… то на выходе какой результат? 🙂

Этот файл в любой однобайтной кодировке будет совпадать до байта. Потому что используются только символы первой половины любой кодовой таблицы. Аналогично дело с utf8. Поэтому можно с полным правом сказать, что это и так файл utf8, только автоопределение кодировки этого не понимает, принудительно открывайте его как utf8 without bom. И если инклюдить его\в_него что-то utf8, результат будет полностью нормальный.

Если не верите, почитайте про кодировки хотя бы на вики.

Текст, состоящий только из символов с номером меньше 128, при записи в UTF-8 превращается в обычный текст ASCII. И наоборот, в тексте UTF-8 любой байт со значением меньше 128 изображает символ ASCII с тем же кодом. Остальные символы Юникода изображаются последовательностями длиной от 2 до 6 байтов (реально только до 4 байт, поскольку использование кодов больше 221 не планируется), в которых первый байт всегда имеет вид 11xxxxxx, а остальные — 10xxxxxx.

P.s. 221 – это два в двадцать первой степени так записалось.

Да не, я верю… Выкрутился согласно советам Ю.Б. и oldvovk… просто прописал в файле <– рус –> и всё, все беды закончились. 🙂

Да не, я верю... Выкрутился согласно советам Ю.Б. и oldvovk...

Я очень рад, что помог Вам поймать черную кошку в темной комнате, несмотря на то что ее там нет 😀

теоретически ее там нет… а вот на практике бывает иначе 🙂

Anonymous
Отправить
Ответ на: