ไฟล์ UTF8 ที่จัดรูปแบบอย่างถูกต้องสามารถมีByte Order Markเป็นสามอ็อกเท็ตแรก นี่คือค่าเลขฐานสิบหก 0xEF, 0xBB, 0xBF octets เหล่านี้ทำหน้าที่ในการทำเครื่องหมายไฟล์เป็น UTF8 (เนื่องจากไม่เกี่ยวข้องกับข้อมูล "คำสั่งซื้อไบต์") 1 หาก BOM นี้ไม่มีอยู่ผู้บริโภค / ผู้อ่านจะถูกทิ้งให้อยู่ในประเภทการเข้ารหัสของข้อความ ผู้อ่านที่ไม่สามารถใช้ UTF8 ได้จะอ่านไบต์เป็นการเข้ารหัสอื่น ๆ เช่น Windows-1252 และแสดงอักขระ
ที่จุดเริ่มต้นของไฟล์
มีข้อผิดพลาดที่รู้จักที่ Excel เมื่อเปิดไฟล์ UTF8 CSV ผ่านการเชื่อมโยงไฟล์ถือว่าพวกเขาอยู่ในการเข้ารหัสไบต์เดียวโดยไม่สนใจการปรากฏตัวของ UTF8 BOM สิ่งนี้ไม่สามารถแก้ไขได้ด้วยการตั้งค่าเริ่มต้นของเพจรหัสหรือการตั้งค่าภาษา BOM จะไม่แยแสใน Excel - เพียง แต่ใช้งานไม่ได้ (รายงานผู้ถือหุ้นส่วนน้อยอ้างว่าบางครั้ง BOM เรียกใช้ตัวช่วยสร้าง "นำเข้าข้อความ") ข้อผิดพลาดนี้มีอยู่ใน Excel 2003 และก่อนหน้า รายงานส่วนใหญ่ (ท่ามกลางคำตอบที่นี่) บอกว่าสิ่งนี้ได้รับการแก้ไขใน Excel 2007 และใหม่กว่า
โปรดทราบว่าคุณสามารถเปิดไฟล์ UTF8 CSV ใน Excel ได้อย่างถูกต้องโดยใช้ตัวช่วยสร้าง "นำเข้าข้อความ" ซึ่งช่วยให้คุณระบุการเข้ารหัสของไฟล์ที่คุณกำลังเปิดอยู่ แน่นอนว่ามันสะดวกน้อยกว่ามาก
ผู้อ่านของคำตอบนี้มีแนวโน้มมากที่สุดในสถานการณ์ที่พวกเขาไม่ได้สนับสนุน Excel <2007 โดยเฉพาะ แต่กำลังส่งข้อความ UTF8 แบบดิบไปยัง Excel ซึ่งเป็นการตีความที่ผิดและการโรยข้อความของคุณด้วยÃ
และอักขระ Windows-1252 อื่น การเพิ่ม UTF8 BOM น่าจะเป็นการแก้ไขที่ดีที่สุดและเร็วที่สุดของคุณ
หากคุณติดอยู่กับผู้ใช้ที่เก่งกว่าเดิมและ Excel เป็นผู้บริโภค CSV เดียวของคุณคุณสามารถแก้ไขได้ด้วยการส่งออก UTF16 แทน UTF8 Excel 2000 และ 2003 จะดับเบิลคลิกเปิดได้อย่างถูกต้อง (โปรแกรมแก้ไขข้อความอื่น ๆ อาจมีปัญหากับ UTF16 ดังนั้นคุณอาจต้องชั่งน้ำหนักตัวเลือกของคุณอย่างระมัดระวัง)
* ยกเว้นเมื่อคุณทำไม่ได้ (อย่างน้อย) Excel 2011 สำหรับตัวช่วยสร้างการนำเข้าของ Mac ไม่ได้ทำงานกับการเข้ารหัสทั้งหมดเสมอไปโดยไม่คำนึงถึงสิ่งที่คุณบอก </anecdotal-evidence> :)