Кодировку стоит определять по нескольким параметрам (по очереди):
1. HTTP-ответ
Код:
Content-Type: text/html; charset=UTF-8
2. Параметры XML (для XHTML):
Код HTML:
<?xml version="1.0" encoding="utf-8"?>
3. Мета-тег в заголовке страницы
Код HTML:
<meta http-equiv="content-type" content="text/html; charset=utf-8">
Используя все 3 метода, можно определить кодировку с точностью 98%. Оставшиеся 2% - это сайты, которые не отдают кодировку в ответе. Для таких обычно принято использовать UTF-8. Некоторые браузеры любят так же проводить частотный анализ, но это уже сложнее.