عزیزم این مشکل برای همه هست یعنی وقتی با PHP کدی رو تو دیتا بیس اینسرت میکنی توسط phpmyadmin علامت سوال و عدد نمایش داده میشه و اگه دستی از طریق phpmyadmin حروف فارسی رو وارد کنی و با php نشون بدی علامت سوال میشه.
برای اینکه مشکلت حل شه نوع دیتابیست رو utf8_general_ci بزار و قبل از اینکه چیزی رو وارد دیتابیس کنی یا بخونی کوئری زیر رو بگیر.
mysql_query("SET NAMES 'utf8'", $link);
البته $link باید با متغیر مربوط به کانکشن دیتابیست تعویض بشه.
فکر کنم این راه حل توی mysql 5 به بالا جواب بده حالا بازم مطمئن نیستم