Подскажите несколько сайтов в разных популярных кодировках

12
[Удален]
1077

Кто подскажет, какие есть самые распространенные кодировки кроме UTF и win1251? Также нужны примеры сайтов на этих кодировках. Написал функцию для проверки кодировки - хочу оттестить.

skAmZ
На сайте с 04.09.2009
Offline
122
#1

Гугл вам в помощь)

UCS-4, UCS-4BE, UCS-4LE, UCS-2, UCS-2BE, UCS-2LE, UTF-32, UTF-32BE, UTF-32LE, UCS-2LE, UTF-16, UTF-16BE, UTF-16LE, UTF-8, UTF-7, ASCII, EUC-JP, SJIS, eucJP-win, SJIS-win, ISO-2022-JP, JIS, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-10, ISO-8859-13, ISO-8859-14, ISO-8859-15, byte2be, byte2le, byte4be, byte4le, BASE64, 7bit, 8bit и UTF7-IMAP

skAmZ добавил 26.02.2010 в 21:53

К тому же зачем писать, если расширение mbstring, поддерживает огромное количество кодировок

[Удален]
#2
skAmZ:


skAmZ добавил 26.02.2010 в 21:53
К тому же зачем писать, если расширение mbstring, поддерживает огромное количество кодировок

только функции этого расширения вечно глючат

[Удален]
#3

хех, забавно ))

даже и не скажу кто использует ... тут надо в стоону не русских языков копать

skAmZ
На сайте с 04.09.2009
Offline
122
#4
plamar:
только функции этого расширения вечно глючат

С этим не поспоришь, я сам предпочитаю писать свое)

Я не знаю, какие ты преследуешь цели, для моих целей хватило перевода любой кодировки в UTF-8, после работать уже в UTF, только необходимо знать исходную кодировку)

Для определения кодировки страниц я пользуюсь функцией:

function _get_char_set($content)

{
$charset='UTF-8';
$content=preg_replace("/\n/", '', strtolower($content));
$res=preg_match_all('/<head(.*)<\/head>/', $content, $head);
$head=$head[0][0];

preg_match_all('/charset=([^\/"> ]+)/', $head, $result);
$result=trim($result[1][0]);

if(!empty($result)) $charset=$result;
return strtolower($charset);
}

Тут конечно можно и по другому написать, сколько я тестировал, результат всегда был точен)

[Удален]
#5

skAmZ, а если мета не в <head> ?

а если есть чарсет в заголовках ответа?

зы: ваш код ужасен) откройте для себя функцию http://php.net/preg_match, а не танцы с *уем около огонька preg_match_all

frantic
На сайте с 09.02.2009
Offline
27
#6
skAmZ:
сколько я тестировал, результат всегда был точен)

а когда меты нет тоже точен?

[Удален]
#7

Проверьте, плиз данную функцию на правильность - в частости правильно ли заданы регулярные выражения:


function getContentInUTF($result, $encoding = 'utf-8')
{
$charset="";
$contenttype = $result['content_type'];
if(!empty($contenttype))
{

if(preg_match('#text/html\s*;\s*charset\s*=\s*([^\s]+)#i',$contenttype, $charsetar))
{
$charset = $charsetar[1];
//echo $charset." found in contenttype header<br>";
}
}
if(empty($charset)){
if(preg_match("#<meta[^>]+Content.Type[^>]+>#ism",$result['content'], $contenttype))
{

if(preg_match('#\s*;\s*charset\s*=\s*(["\'a-z0-9\\-]+)#i',$contenttype[0], $chset))
{
$charset = trim($chset[1], "\"'");
//echo $charset." found in meta<br>";
}
}
}

if(empty($charset))
{
$charset="windows-1251";
}

if(strcmp(strtolower($charset),strtolower($encoding))!=0)
{
return iconv($charset, $encoding, $result['content']);
}
else
{
return $result['content'];
}
}
frantic
На сайте с 09.02.2009
Offline
27
#8

plamar, объясни как это чудо должно работать :)

а то так с ходу и не разберешься... ну ты и напихал регэкспов. так то с виду правильно. может кроме модификатора "m". зачем он тебе там? думаешь кто то будет мету переносить по строкам?

[Удален]
#9
frantic:
plamar, объясни как это чудо должно работать :)
а то так с ходу и не разберешься... ну ты и напихал регэкспов. так то с виду правильно. может кроме модификатора "m". зачем он тебе там? думаешь кто то будет мету переносить по строкам?

перед запуском функции с помощью курла получаем значение $result (в нем есть и контент, и контент тайп и много чего другого). Далее по приоритету: сначала проверяем наличие кодировки в поле content type, затем в мете (если в контент тайпе не найдено). Затем если ничего нигде не найдено - считаем, что кодировка Win1251 (по крайней мере я нашел несколько таких сайтов), ну а далее, если определенная функцией кодировка не равна $encoding (то есть той, которую нужно вернуть), проводим конвертацию с помощью iconv

[Удален]
#10

вы все еще варите? тогда мы идем К ВАМ!

bearman добавил 27.02.2010 в 09:08

о! так фнукция то моя =)

ктстаи в моей именно небоьлшая ошибочка, при проверке на мету надо условие на "ненайденность" кодировки в заголовках сделать, спасибо что нашли)

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий