2012-06-12 2 views
0

Я делал кучу операций замены заметок в блокноте ++, чтобы эффективно минимизировать мой css - в основном удаление пробелов/вкладок и т. Д.). Это закончилось тем, что нарушило большую часть моего css.Специальный символ добавлен в css (â € <), откуда это взялось?

По-видимому, странный персонаж (â € <) был вставлен повсюду) Использование Notepad ++ в UTF-8 без спецификации, я не могу их видеть, но они появились в источнике просмотра.

Мне удалось удалить их, выполнив поиск в кодировке ANSI, но мой вопрос в том, что это за персонаж и почему он появился?

+0

Знаете ли вы, что какой-либо из вашего кода вставлялся из приложения, такого как MS Word? – ply

+0

определенно нет. –

ответ

2

Строка "â € <" представляет собой кодированную форму ZWSP в кодировке UTF-8, когда неверно интерпретируется как данные, закодированные в Windows-1252. (Проверено это с помощью хорошего UTF-8 decoder.) Это объясняет, почему вы не видите его в Notepad ++ в режиме UTF-8; ZWSP (пространство с нулевой шириной) - невидимый символ без ширины.

Видимо, браузеры интерпретируют таблицу стилей как кодировку окон 1252. Сохранение файла с Спецификация может помочь, поскольку браузеры, вероятно, предпочтут кодирование лучше. Реальное решение состоит в том, чтобы удостовериться (в зависимости от сервера), что сервер отправляет соответствующий заголовок Content-Type для файла CSS.

Но если это единственный символ не-Ascii в вашем файле CSS, на практике это не имеет значения, после удаления удаленных данных.

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

+0

Просто FYI для читателя: Несколько лет назад я увидел, что это начало появляться в моих внешних файлах JS, и IE отказался запускать JS. Я обнаружил, что это проблема с кодировкой, вызванная неправильными настройками в Adobe GoLive. Если я правильно помню, этот символ был вставлен GoLive при загрузке FTP на сервер. Теперь я больше не использую редакторов WYSIWYG. – Sparky

+0

Блестящий, спасибо !. Бонусные баллы, если у вас есть фрагмент '.htaccess', чтобы обеспечить правильный тип содержимого для моего css ;-) –

+1

Zach L, если ваши .css-файлы закодированы в кодировке UTF-8 (и любой файл с чистым ASCII тривиально), вы можете используйте следующее в '.htaccess': ' AddType text/css; charset = utf-8 css' –

0

С помощью встроенного веб-разработчика или внешнего приложения Firefox вы можете увидеть символ проблемы в документе css.

В Visual Studio все, что я мог видеть:

} 
.t 

Веб-разработчик показал нежелательный скрытый характер, «а» с кареткой на вершине:

} 
â.t 

по ссылке UTF кодировщик выше показал это

} (the encoded character for ampersand) 
.t 

и это

, но просто устраните проблему, удалив и переименовав.

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