2013-02-11 13 views
5

Trong khi tôi có thể hiểu được ý nghĩa của mã hóa và giải mã từ wikipedia, tôi không thể hiểu tại sao mỗi ngôn ngữ lập trình cần chúng? Và nếu câu trả lời có liên quan đến việc có thể đọc dữ liệu từ nguồn bên ngoài như một cơ sở dữ liệu, thì tại sao nhiều người trong số họ sử dụng các lược đồ mã hóa khác nhau?Tại sao mã hóa và giải mã cần thiết cho bất kỳ ngôn ngữ lập trình/cơ sở dữ liệu nào?

E.x. Python có một mã hóa ASCII mặc định
Java dựa trên O.S cơ bản,
cơ sở dữ liệu DB2 có IBM-1252

Trả lời

18

Hầu hết mọi người thích làm việc với văn bản.

Tuy nhiên, bộ nhớ máy tính chỉ có thể hoạt động với byte.

Mã hóa là quá trình chuyển văn bản thành byte.

Trong vài thập kỷ qua, nhiều chương trình mã hóa khác nhau đã được phát triển cho các mục đích khác nhau, chẳng hạn như ngắn gọn, khả năng tương thích hoặc quốc tế.

Hôm nay, mọi thứ chỉ nên sử dụng UTF8. (buồn thay, không phải mọi thứ đều có)

+4

+1 cho * tất cả mọi thứ chỉ đơn giản là nên sử dụng UTF8 * (Bạn có nghe thấy chúng tôi, Redmond? Không ai muốn steenkin' codepage DOS cổ nữa.) – Ingo

+0

ý rằng mã hóa/giải mã cũng có thể chuyển đổi từ một nhị phân đến một khác (mp3 , mpeg4, v.v.). – Pithikos

+0

@Pithikos: Đó là một dạng mã hóa khác. – SLaks

3

Lập trình viên và người dùng tương tác với định dạng văn bản đơn giản dưới dạng tiếng Anh hoặc ngôn ngữ có thể đọc được khác nhưng máy tính không biết cách xử lý. giải mã là cần thiết.

Quoted from http://searchnetworking.techtarget.com/definition/encoding-and-decoding:

Trong máy tính, mã hóa là quá trình đưa một chuỗi các ký tự (chữ cái, số, dấu chấm câu, và các ký hiệu nhất định) sang một định dạng chuyên để truyền hiệu quả hay lưu trữ. Giải mã là quy trình ngược lại - việc chuyển đổi định dạng được mã hóa trở lại thành chuỗi ký tự ban đầu. Mã hóa và giải mã được sử dụng trong truyền thông, kết nối và lưu trữ dữ liệu. Thuật ngữ này đặc biệt là áp dụng cho hệ thống thông tin vô tuyến (vô tuyến).

Thuật ngữ mã hóa và giải mã thường được sử dụng để tham chiếu đến các quá trình chuyển đổi tương tự sang kỹ thuật số và chuyển đổi tương tự sang số . Theo nghĩa này, các điều khoản này có thể áp dụng cho bất kỳ hình thức dữ liệu nào, bao gồm văn bản, hình ảnh, âm thanh, video, đa phương tiện, chương trình máy tính, hoặc tín hiệu trong cảm biến, từ xa và hệ thống điều khiển. Mã hóa cần không bị nhầm lẫn với mã hóa, một quá trình trong đó dữ liệu được cố ý thay đổi để che giấu nội dung của nó. Mã hóa có thể được thực hiện mà không thay đổi mã cụ thể mà nội dung đang ở và mã hóa có thể được thực hiện mà không cố ý che giấu nội dung.
Mã được sử dụng bởi hầu hết các máy tính cho tệp văn bản được gọi là ASCII (Mã tiêu chuẩn của Mỹ cho trao đổi thông tin, được phát âm là ASK-ee). ASCII có thể mô tả chữ hoa và chữ thường ký tự, chữ số, dấu chấm câu và các ký hiệu chung. Khác mã thường được sử dụng bao gồm Unicode, BinHex, Uuencode và MIME. Trong thông tin liên lạc dữ liệu, mã hóa Manchester là một dạng mã hóa đặc biệt trong đó các chữ số nhị phân (bit) thể hiện sự chuyển đổi giữa các trạng thái logic cao và thấp.Trong truyền thông vô tuyến, nhiều phương thức mã hóa và giải mã tồn tại, một số trong số đó chỉ được sử dụng bởi các nhóm người chuyên nghiệp (ví dụ như các nhà khai thác radio nghiệp dư, chẳng hạn) . Mã số lâu đời nhất của tất cả, ban đầu được sử dụng trong điện báo cố định trong thế kỷ, là mã Morse.

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