2012-04-28 42 views

Trả lời

54

Unicode là một cách để gán số duy nhất (được gọi là điểm mã) cho các ký tự từ gần như tất cả các ngôn ngữ đang hoạt động hiện tại, cộng với nhiều ký tự khác như ký hiệu toán học. Có nhiều cách để mã hóa chuỗi Unicode dưới dạng byte, chẳng hạn như UTF-8UTF-16.

ASCII chỉ gán giá trị cho 128 ký tự (a-z, A-Z, 0-9, dấu cách, dấu chấm câu và một số ký tự điều khiển).

Đối với mỗi ký tự có giá trị ASCII, điểm mã Unicode và giá trị ASCII của ký tự đó giống nhau.

Trong hầu hết các ứng dụng hiện đại, bạn nên sử dụng các chuỗi Unicode hơn là ASCII. Ví dụ này sẽ cho phép bạn có người dùng có ký tự có dấu trong tên hoặc địa chỉ của họ và để bản địa hóa giao diện của bạn sang các ngôn ngữ khác ngoài tiếng Anh.

+0

Nhưng làm cách nào để sử dụng ký tự unicode? Tôi có thể sử dụng các ký tự ascii chỉ đơn giản bằng cách sắp xếp các ký tự thành ints, nhưng tôi có thể làm tương tự với các ký tự unicode không? – Ghost

+0

@Ghost: Không rõ tại sao bạn cần truyền các ký tự vào int. Bạn đang cố làm gì vậy? –

+0

những gì tôi đang nói là để có được giá trị ascii của một ký tự tôi cần phải định kiểu nó: char a = 'a'; int b = (int) a // giá trị ascii của – Ghost

14

Đầu tiên 128 Unicode điểm mã giống với ASCII. Sau đó, họ có 100.000 hoặc hơn.

Có hai định dạng phổ biến cho Unicode, UTF-8 sử dụng 1-4 byte cho mỗi giá trị (vì vậy đối với 128 ký tự đầu tiên, UTF-8 chính xác giống ASCII) và UTF-16, sử dụng 2 hoặc 4 byte.

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