konu çok eski ama aynı sorunla karşılaşıp çözümü bulduğum için yazmak istedim. benim veritabanım utf-8 idi. önce sql dosyasının utf-8 karakter setinde düzgün olduğundan emin olduktan sonra phpmyadmin'de "içeri aktar" bölümüne girip ve karakter seti olarak binary seçtim ve bu şekilde aktarım yaptım. sitede ise set names vb. kullanmadım.
phpmyadmin 'de binary dışnda bir karakter seti seçerseniz sql sorgunuzu çalıştırmadan önce o karakter kodunu göre set names ifadesi ekliyor. eğer utf-8 seçerseniz ve veritabanınız zaten utf-8 ise karakterler bozuk olarak aktarılmış olur. set names yalnızca kaynak veritabanı ile almak istediğimiz veri farklı ise almak istediğimiz verinin karakter setini belirtmek için kullanılır. ama bu durumda bu yanlıştı çünkü kaynak veritabanı benim istediğim gibi utf-8 idi.