Проблема с кодировками

workOnFood

Новичок
Всем доброго дня.
Понимаю что это одна из самых избитых тем, и врядли мой случай чем-то уникален, тем не менее почитав форум, и др. информацию по кодировкам, так и не нашел решения проблемы.
Все безобразие происходит у меня на компе Windows 7 на денвере.

Есть база с кодировкой utf8, в ней все таблицы и поля таблиц в utf8. В phpMyAdmin русские буквы отображаются нормально.

Есть файл в utf8 без bom с функцией выводящей текст из базы на экран, есть страница у которой в хедере прописана также utf8, к этой странице подключается файл с функцией и запускается функция выводящая текст. Также в корне сайта лежит htаccess в котором прописана utf8. Пробовал прописать также default_charset в php.ini - эффекта ноль. Функция mb_detect_encoding(проблемная строка) выводит UTF-8.

Получается кругом utf8 а выводит ���������� на разных браузерах. Помогите плиз разобраться что не так.
 

workOnFood

Новичок
Если написать iconv('windows-1251','utf-8',$seasons[0][0]) - все нормально. Непонятно почему. Хотелось бы без iconv.
 

workOnFood

Новичок
Хоть косточку киньте=) Куда копать? Я уже все известные мне направления рассмотрел.
 

Viktor_Rez

Новичок
На разных компах тестили? Может быть у вас по-дефолту в браузере стоит кодировка не та?
 

workOnFood

Новичок
На разных компах не тестил. Нет возможности к сожалению. По дефолту в браузере стоит utf8, плюс как я ранее написал тестил на разных браузерах везде мура. Я тут в одной из недавних тем про кодировки натолкнулся на чието высказывание что в базе куча тонкостей что касается кодировок, интересно бы узнать хотя бы парочку таких тонкостей а то я себе уже мозг перегрел от безисходности.=)
 

Viktor_Rez

Новичок
А ни где не конвертируется кодировка? Ведь у вас на одном и том же сервере (phpMyAdmin) совершенно разные результаты.
 

workOnFood

Новичок
Нет, все самописное. И путь до вывода там оч простой. Правда я использую классы, но не думаю что само испольование классов имеет какое-то отношение к кодировкам. Если быть более подробным то -
class Shini extends Database{
function form($type){
if($type=='shini'){
$seasons = $this->select('distinct sezon','shini',$where='',$order='',$type='',$limit='');
var_dump($seasons);
}
}
}

class Database{
protected $db;
public $err;
function __construct($srv,$user,$pass,$database){
$this->err[]=$this->db=@mysql_connect($srv,$user,$pass);
$this->err[]=@mysql_select_db($database);
}
function select($what,$table,$where='',$order='',$type='',$limit=''){
$res=mysql_query('select '.$what.' from '.$table.' '.$where.' '.$order.' '.$type.' '.$limit);
while($rows[]=mysql_fetch_row($res)){
}
return $rows;
}
}

Ну и сам код вывода -

$sh = new Shini(DB_SRV,DB_USER,DB_PASS,DATABASE);
$sh->form('shini');

Прошу за код сильно не бить, я не против разумной критики конечно, но вконце концов тема касается кодировок.
 

workOnFood

Новичок
Помогло!=) Спасибо огромное. Получается что если в phpMyAdmin написано что по дефолту стоит utf8, это еще не значит что это так на самом деле? Или я не правильно понимаю суть проблемы?
 

Viktor_Rez

Новичок
О, это долгая история, мой друг. Главное у тебя пакеты от mysql теперь летят с кодировкой utf-8! =)
 

workOnFood

Новичок
Ну в рамках поставленной задачи не спорю, это главное. А так хотелось бы конечно знать почему они изначально у меня летели в windows-1251=) Если знаете где про это почитать можно, киньте ссылочку плиз.
 

workOnFood

Новичок
This is a little problem for me, because this phrase is everything that I now in inglish... mostly. Спасибо думаю со словарем справлюсь.=)
 
Сверху