Trước hết: tiêu đề của bạn sử dụng / d ANSI, trong khi trong văn bản bạn đề cập đến ASCII. Xin lưu ý rằng ANSI không bằng ASCII. ANSI kết hợp bộ ASCII. Nhưng bộ ASCII bị giới hạn ở 128 giá trị số đầu tiên (0 - 127).
Nếu tất cả dữ liệu của bạn bị giới hạn ở ASCII (7 bit), việc bạn sử dụng UTF-8, ANSI hay ASCII không thành vấn đề, vì cả ANSI và UTF-8 đều kết hợp bộ ASCII đầy đủ. Nói cách khác: các giá trị số 0 lên đến và bao gồm 127 thể hiện chính xác các ký tự giống nhau trong ASCII, ANSI và UTF-8.
Nếu bạn cần các ký tự bên ngoài bộ ASCII, bạn sẽ cần chọn mã hóa. Bạn có thể sử dụng ANSI, nhưng sau đó bạn gặp phải các vấn đề của tất cả các trang mã khác nhau. Tạo một tệp trên máy A và đọc nó trên máy B có thể / sẽ tạo ra các văn bản trông buồn cười nếu các máy này được thiết lập để sử dụng các trang mã khác nhau, đơn giản vì giá trị số nnn đại diện cho các ký tự khác nhau trong các trang mã này.
"Địa ngục trang mã" này là lý do tại sao tiêu chuẩn Unicode được xác định. UTF-8 là một mã hóa duy nhất của tiêu chuẩn đó, còn nhiều thứ nữa. UTF-16 được sử dụng rộng rãi nhất vì nó là mã hóa riêng cho Windows.
Vì vậy, nếu bạn cần hỗ trợ bất cứ điều gì ngoài 128 ký tự của bộ ASCII, lời khuyên của tôi là hãy sử dụng UTF-8 . Bằng cách đó, điều đó không thành vấn đề và bạn không phải lo lắng về việc trang nào mà người dùng của bạn đã thiết lập hệ thống của họ.