خیر، هر فایلی یه انکودینگ نداره.
هر فایل شامل چند بایت هستش!! مهم اینه که این بایت ها چطوری پردازش بشن، مثلا بایت های یک فایل ممکنه خروجی یک عکس بدهند که شما برای دیده شدن اون فایل، اون رو با مثلا acdsee باز کنید. و ممکنه بایت های یک فایل به شکل asni باشند و برنامه شما اون رو به صورت ansi باز کنه و البته ممکنه نوع اطلاعات اون فایل به صورت unicode ذخیره شده باشند و باید به صورت unicode بازیابی بشن
پس، هویت یک فایل رو اصولا نمی شه توی خود فایلیا اسم اون ذخیره کرد (مگر با header یا footer که برای اکثر فایل ها استفاده می شه (البته راه های دیگه ای هم هست)) و هویت یک فایل در زمان ذخیره شدن یا بازیابی اون فایل مهم می باشد.
مشکل شما در اینجا ها نهفته است:
۱- عدم درک صحیح نسبت به هویت «فایل»
۲- عدم درک صحیح نسبت به هویت «بایت» یا «کاراکتر»
۳- عدم درک صحیح نسبت به هویت encoding
۴- عدم شناخت انواع encoding های متن به خصوص unicode
موفق باشید، امید