اگر تا به حال با PHP یا هر زبان دیگری، یک فایل با پسوند csv خروجی گرفته باشید، میدانید که وقتی آنرا در Excel باز میکنید، چنین کاراکترهایی را مشاهده میکنید:
نام خ
دلیل آن این است که خروجی شما هر چند که UTF-8 است اما ویندوز، برای اینکه بفهمد این یک فایل UTF-8 است، یک کاراکتر مخفی در ابتدای آن کم دارد که در اصطلاح به آن BOM گفته میشود.
پس شما دو راه دارید:
۱- اگر خودتان برنامه را ننوشتهاید و این مشکل در فایلی که به دست آوردهاید وجود دارد، برای رفع این مشکل، آنرا در برنامه NotePad++ باز کنید و از منوی Encoding گزینه Encode in UTF-8 را انتخاب کنید. فایل را ذخیره کنید و دوباره در اکسل باز کنید، خواهید دید که آن مشکل رفع شده.
۲- اگر خودتان برنامهنویس هستید، برای اینکه کاربران با این مشکل مواجه نشوند، همان ابتدای فایل خروجی، این کاراکترها را قرار دهید:
\xEF\xBB\xBF
همین!
این کاراکترها نماد BOM هستند.
توجه: فراموش نکنید که اینها باید در دابل کوتیشن قرار گیرد نه در سینگل کوتیشن.
اگر توضیحات بیشتری نیاز دارید، ویکی پدیا را ببینید:
http://en.wikipedia.org/wiki/Byte_order_mark
موفق باشید،
حمید رضا نیرومند
کلمات کلیدی: php, آموزش php, پسوند csv, مشکل کاراکتر در Excel, UTF-8, کاراکتر مخفی BOM, برنامه نویسی, حروف ناخوانا, کاراکتر های نامفهوم