ใช้(StreamWriter sw = File.CreateText(@"d:DefaultUTF8.txt"))
-
sw.Write("ส่วนตัว");
}
โดยใช้(StreamWriter sw=new StreamWriter(@"d:StreamUTF8.txt",
เท็จ System.Text.Encoding.UTF8))
-
sw.Write("ส่วนตัว");
}
โดยใช้ (System.IO.FileStream fs = System.IO.File.Create(@"d:ByteUTF8.txt"))
-
ข้อมูลไบต์ [] = System.Text.Encoding.UTF8.GetBytes ("ส่วนตัว");
fs.Write (ข้อมูล, 0, info.Length);
-
ฉันคิดมาตลอดว่าผลลัพธ์ของทั้งสามวิธีข้างต้นนั้นเหมือนกันและไม่มีความแตกต่างเลย วันนี้ฉันรู้ว่าไม่เป็นเช่นนั้น ฮ่าๆ ถ้าคุณคิดว่าคำถามนี้ไร้เดียงสาคุณก็ไม่จำเป็นต้อง
ดูถูก ผลลัพธ์ที่ 1 และ 3 เหมือนกัน คือ E7 A7 81 ทั้งคู่
และ 2 จะมี ZERO WIDTH NO-BREAK SPACE พิเศษ ซึ่งก็คือ EF BB BF
เมื่อเราจำเป็นต้องใช้ Byte Order Mark เพื่อระบุวิธีการเข้ารหัสของไฟล์ โปรดใช้วิธีที่ 2 วิธี
ข้างต้นยังใช้ได้กับ UNICODE ที่ระบุ Big-Endian และ Little-Endian
http://www.cnblogs.com/jjstar/archive/2006/12/18/595812.html