پنج‌شنبه ۱۵ آذر ۱۴۰۳ |  عضویت / ورود

چگونه با PHP از اطلاعات دیتابیس خروجی csv بگیریم که کاراکترها درست نمایش داده شوند؟


Wednesday, 2013 February 27   نویسنده: Hamid   تعداد بازدید: 8151 بار  #آموزش PHP‏   امتیاز متوسط: امتیازی داده نشده است

اگر تا به حال با 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, برنامه نویسی, حروف ناخوانا, کاراکتر های نامفهوم


.



ارسال سؤال یا نظر


1- رضااسماعیلی:
بوسیله: , در: Sunday, 2013 March 10-کد: 6392
من هنوز نتنوانستم یک ایمل درست کنم


2- حسن احمدی :
بوسیله: , در: Wednesday, 2014 January 15-کد: 9193
مهندس جان عالی وبسایر کاربردی بود دمت گرم
http://vatansystem.blogfa.com


3- شهرام:
بوسیله: , در: Wednesday, 2018 November 28-کد: 15821
عالی

Tutorials ©