2012-06-27 33 views
8

Tôi chỉ tò mò rằng có những hệ thống hiện đại ở đó mặc định cho một cái gì đó khác với UTF-8. Tôi đã có một khối người cho cả ngày trên nhiều địa điểm mà một hệ thống mysql có thể có mã hóa khác nhau. Rất bực bội.tại sao KHÔNG MỌI MỌI mặc định là UTF-8?

Có lý do nào tốt để không sử dụng utf-8 làm mặc định không (và dung lượng lưu trữ có vẻ không phải là lý do chính đáng)? Không cố gắng để được tranh luận, chỉ tò mò.

thx

+4

Chủ yếu là do rất nhiều hệ thống "hiện đại" không thực sự hiện đại (hoặc ít nhất, đã tồn tại một thời gian), và do đó phải lo lắng về khả năng tương thích ngược. – Amber

+0

vì vậy tôi không nói 'không hỗ trợ' các mã hóa khác nhưng có vẻ như mọi thứ đã được đặt thành utf-8, rất nhiều cơn đau đầu có thể tránh được. Tôi hình dung nỗi đau của việc chuyển đổi mặc định (như trong trường hợp của mysql) nhưng tôi thành thật mà không nhận được nó. – timpone

+1

Mặc định chuyển mạch là một cơn đau * lớn *. – Amber

Trả lời

-1

Một số mã hóa có đơn đặt hàng byte khác nhau (Little và Big Endian)

+1

UTF8 tiêu chuẩn hóa thứ tự byte ... Làm thế nào để câu trả lời này Câu hỏi: –

+0

Vì một số hệ thống có thể không sử dụng thứ tự byte chuẩn nên bạn có thể cần sử dụng một mã hóa khác để hỗ trợ thứ tự byte của hệ thống đó. – cmastudios

+0

http://unicode.org/faq/utf_bom.html#bom5 wrt BOM trong UTF-8: ".. UTF-8 có thể chứa BOM. Tuy nhiên, nó không tạo ra sự khác biệt nào về độ cuối của luồng byte." Vì vậy, một đối số BOM của tôi là hợp lệ cho UTF-16, nhưng UTF-16 nói chung là không hoán đổi cho nhau với ASCII. –

6

Ngày xửa ngày xưa không có unicode hoặc UTF-8, và mã hóa khác nhau kế hoạch đã được sử dụng trên toàn thế giới.

Mãi cho đến năm 1988, đề xuất unicode ban đầu đã được ban hành, với mục tiêu mã hóa tất cả các ký tự của thế giới trong một bảng mã thông dụng.

Bản phát hành đầu tiên vào năm 1991 bao gồm nhiều bản trình bày nhân vật, tuy nhiên, đến năm 2006, người Bali, Cuneiform, N'Ko, Phags-pa và Phoenician mới được thêm vào.

Cho đến khi Phoenicia, và những người khác, không thể đại diện cho ngôn ngữ của họ trong UTF-8 pissing ra nhiều lập trình viên tự hỏi tại sao tất cả mọi thứ không chỉ là mặc định UTF-8.

+0

1991 là 21 năm trước, và với tất cả sự tôn trọng các nền văn hóa mà bạn đặt tên, tôi nghi ngờ rằng (hoặc là, hoặc sẽ ở trong tương lai gần) một thị trường đủ lớn cho máy tính/phần mềm để chặn chuyển đổi theo cách hợp lý hơn (cho phần còn lại của thế giới) mặc định trong hai mươi năm. Đó là một lý do khá yếu. – delnan

+0

Cần có thời gian để di chuyển, chỉ vì bản phát hành đầu tiên của unicode là vào năm 1991 không có nghĩa là nó đã được chấp nhận ngay lập tức, và vẫn chưa hoàn toàn, đó là lý do tại sao tất cả chúng ta vẫn có các vấn đề mã hóa này. Rất nhiều dữ liệu hiện có vẫn còn trong mã hóa khác với unicode. – monkut

+0

Sau đó, giải thích rằng, thay vì đánh lừa một thứ gì đó gần như không liên quan đến câu trả lời bạn định đưa ra. – delnan

Các vấn đề liên quan