การบันทึกไฟล์ในรูปแบบ CSV ใน Excel จะลบ BOM เสมอ
ฉันพยายามหาคำตอบ / คำอธิบายที่สมเหตุสมผล (ไม่สำเร็จ) เพื่อค้นหาว่าเหตุใด Excel จึงใช้ค่าเริ่มต้นในการลบ BOM เมื่อบันทึกไฟล์เป็นประเภท CSV โปรดยกโทษให้ฉันหากคุณพบว่าซ้ำกับคำถามนี้ สิ่งนี้จะจัดการกับการอ่านไฟล์ CSV ด้วยการเข้ารหัสที่ไม่ใช่ ASCII แต่มันไม่ครอบคลุมการบันทึกไฟล์กลับออกมา นี่คือสถานการณ์ปัจจุบันของฉัน (ซึ่งฉันกำลังจะรวบรวมเป็นเรื่องธรรมดาในบรรดาซอฟต์แวร์ที่แปลเป็นภาษาท้องถิ่นที่มีอักขระ Unicode และรูปแบบ CSV): เราส่งออกข้อมูลไปยังรูปแบบ CSV โดยใช้ UTF-16LE เพื่อให้มั่นใจว่ามีการตั้งค่า BOM (0xFFFE) เราตรวจสอบความถูกต้องหลังจากสร้างไฟล์ด้วยตัวแก้ไข Hex เพื่อให้แน่ใจว่าได้ตั้งค่าไว้อย่างถูกต้อง เปิดไฟล์ใน Excel (สำหรับตัวอย่างนี้เรากำลังส่งออกตัวอักษรญี่ปุ่น) และเป็นพยานว่า Excel จัดการโหลดไฟล์ด้วยการเข้ารหัสที่ถูกต้อง ความพยายามในการบันทึกไฟล์นี้จะแสดงข้อความเตือนให้คุณทราบว่าไฟล์นั้นอาจมีฟีเจอร์ที่ไม่สามารถใช้งานร่วมกับการเข้ารหัส Unicode แต่ถามว่าคุณต้องการบันทึกหรือไม่ หากคุณเลือกกล่องโต้ตอบบันทึกเป็นมันจะขอให้คุณบันทึกไฟล์เป็น "ข้อความ Unicode" ทันทีแทนที่จะเป็น CSV หากคุณเลือกส่วนขยาย "CSV" และบันทึกไฟล์ไฟล์นั้นจะลบ BOM (อย่างชัดเจนพร้อมกับตัวอักษรญี่ปุ่นทั้งหมด) …