meta chraset

Статус
В этой теме нельзя размещать новые ответы.

artcosmic

Постоялец
Регистрация
16 Сен 2008
Сообщения
198
Реакции
162
Помогите, плиз
Нужна регулярка, которая способна вытащить название кодировки из тега meta charset
Задача усложняется тем, что разные вебмастера пишут этот тег по-разному - кто-то с пробелами, кто-то с слэшем в конце, кто-то в кавычках, кто-то в апострофах, кто-то без кавычек вообще
Может, есть у кого-то готовое решение?

P.S. Сорри за опечатку в названии
 
А не легче ли использовать php функции mbstring для определения кодировки страницы? :)

Потому что есть быдловерстальщики, которые могут вообще не ставить кодировку или например для страницы UTF8 ставить метатэг cp1251.
 
Проблема в том, что я работаю не в РНР, а в .NET :)
А насчет таких вот быдлокодеров... Ну, utf-8 нормально я определяю по BOM. Всё, что не utf-8 - я ставлю windows-1251 и иногда промахиваюсь, ибо есть в наше время уникалы, которые верстают в koi8-r(u) и вот их хотелось бы отлавливать.
 
Тогда тут нужно искать аналоги в .Net если там такого функционала совсем нет то лично я очень разочарован в .Net


 
Не стоит разочаровываться в .NET - очень хорошая система.
За ссылку на гугл спасибо, конечно, но искать я и сам умею ;)
Правда, находить не всегда получается.

Сформулирую проблему точнее
1. Тексты в кодировке utf-8 определяются запросто средствами самого .NET.
2. Тексты в других кодировках определяются как ISO-XXXX-X. Я, когда встречаю ISO, перевожу его в windows-1251. На 90% процентах сайтов прокатывает. Но остается 10% сайтов в кодировке KOI-8, которые превращаются в абракадабру.
Вот я и подумал, что меня спасет регулярка, которая, в дополнение к стандартным методам определения кодировки .NET, поможет мне вычислить эти сайты и явно указать для них нужную кодировку. Тогда останется 1% сайтов, сделанных в кодировке KOI8 с непрописанным тегом meta charset.
Кто-нибудь знает эту регулярку? Я же не единственный с таким столкнулся. Или есть более элегантное решение?
 
Кодировку не обязательно прописывать в meta, она может быть в соответствующем http заголовке (Content-Type), поэтому помимо html надо проверять заголовок.
Выдрать кодировку из мета -
Код:
<meta[^>]+\bContent-Type\b[^>]*> #раз
charset\s*=\s*([^\s"'>;]+) #два
 
Удалил. Ошибся. Всё работает. Спасибо RolCom :)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху