TIÊN DU 1
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.


TIÊN DU 1
 
Trang ChínhLatest imagesTìm kiếmĐăng kýĐăng Nhập

Share | 
 

 Việt hóa J2ME (phần 8) - Ký tự Tiếng Việt trong J2ME - Tổng quan về bộ mã UTF8

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giả{
Bình chọn cho bài viết:
}
Heomyt
S-mod
S-mod
Heomyt

Tổng số bài gửi : 73
Điểm : 14769
Rep Power : 7
Join date : 27/02/2011
Age : 29
Đến từ : Ngò Cyti

Việt hóa J2ME (phần 8) - Ký tự Tiếng Việt trong J2ME - Tổng quan về bộ mã UTF8  Empty
Bài gửiTiêu đề: Việt hóa J2ME (phần 8) - Ký tự Tiếng Việt trong J2ME - Tổng quan về bộ mã UTF8    Việt hóa J2ME (phần 8) - Ký tự Tiếng Việt trong J2ME - Tổng quan về bộ mã UTF8  Icon_minitimeThu Mar 03, 2011 3:13 pm

Như đã nói trong các bài viết trước, các ứng dụng Java nói chung và
J2ME nói riêng hiển thị các ký tự Unicode (trong đó có cả các ký tự
Tiếng Việt) thông qua bộ mã hóa chuẩn UTF8. Vậy UTF8 là gì và quy chuẩn
của bộ mã này ra sao. Hôm nay chúng ta sẽ cùng tìm hiểu!

UTF8 là gì?

Trước năm 2000, bộ mã 8 bit (1 byte) là bộ mã chuẩn của thế giới. Tuy
nhiên bộ mã này chỉ cho phép mã hóa được 256 loại ký tự (ASCII) khác
nhau (vào thời điểm này thì 256 ký tự quá đủ để mã hóa các ký tự latin
phục vụ cho ngôn ngữ thịnh hành là Tiếng Anh và bộ số đếm cùng bộ số
đếm và các ký tự thông dụng.
Tất nhiên là ngành tin học không dừng lại ở đó Việt hóa J2ME (phần 8) - Ký tự Tiếng Việt trong J2ME - Tổng quan về bộ mã UTF8  71,
cùng với sự lớn mạnh của tin học trên toàn cầu, nhu cầu sử dụng nhiều
ký tự hơn, ít ra là để có thể mã hóa được toàn bộ ký tự của mọi ngôn
ngữ và làm thêm một số việc khác nữa, chuẩn Unicode đã được đưa ra. Tuy
nhiên, các chương trình lúc đó đa phần các chương trình được viết theo
chuẩn 8-bit và không thể sử dụng được Unicode. Và UTF8 ra đời để mô phỏng
lại Unicode theo bộ mã 8-bit (số 8 mô tả rằng nó sử dụng 8 bit, ngoài
UTF8 còn có UTF7 sử dụng 7 bit, UTF16 sử dụng 16 bit, UTF32 sử dụng 32
bit,...), hay nói cách khác UTF8 là một cách mã hóa để có tác dụng giống như UCS-4
Do được thiết kế với 8-bit và sử dụng linh hoạt từ 1 đến 6 byte (lý
thuyết là vậy nhưng thực tế hiện nay thì chỉ sử dụng đến 4 byte thôi
:D) để biểu diễn một ký tự, UTF8 tương thích với ASCII và có các lợi
thế:
+ Dễ dàng sử dụng để bổ sung hỗ trợ Unicode cho các phần mềm có sẵn,
các nhà phát triển hoàn toàn có thể sử dụng các hàm thao tác với
Unicode trong các chương trình của mình mà không phải thiết kế lại từ
đầu
+ Đối với các văn bản chỉ có một số ít các ký tự ngoài ASCII, UTF8 giúp tiết kiệm không gian lưu trữ đáng kể
+ UTF8 được thiết kế đảm bảo không có chuỗi byte của ký tự nào lại nằm
trong một chuỗi của ký tự khác dài hơn. Điều này khiến cho việc tìm
kiếm ký tự theo byte trong một văn bản là rất dễ dàng

Còn khá nhiều điều thú vị về UTF8 nữa nhưng để tránh bài viết trở lên
quá phức tạp nên chúng ta chỉ tìm hiểu khái niệm đến vậy thôi nhé Việt hóa J2ME (phần 8) - Ký tự Tiếng Việt trong J2ME - Tổng quan về bộ mã UTF8  10

Quy chuẩn mã hóa UTF8

(Quy ước các số bắt đầu bằng 0x là các số biểu diễn trong hệ hex)


  • Các ký tự có giá trị nhỏ hơn 0x80, sử dụng 1 byte có cùng giá trị. ASCII như nào thì UTF8 như vậy
  • Các ký tự có giá trị nhỏ hơn 0x800, sử dụng 2 byte: byte thứ nhất
    có giá trị 0xC0 cộng với 5 bit từ thứ 7 tới 11, byte thứ hai có giá trị
    0x80 cộng với các bit từ thứ 1 tới thứ 6
  • Các ký tự có giá trị nhỏ hơn 0x10000, sử dụng 3 byte: byte thứ nhất
    có giá trị 0xE0 cộng với 4 bit từ thứ 13 tới 16; byte thứ hai có giá
    trị 0x80 cộng với 6 bit từ thứ 7 tới 12; byte thứ ba có giá trị 0x80
    cộng với 6 bit từ thứ 1 tới thứ 6.
  • Các ký tự có giá trị nhỏ hơn 0x200000, sử dụng 4 byte: byte thứ
    nhất có giá trị 0xF0 cộng với 3 bit từ thứ 19 tới 21; byte thứ hai có
    giá trị 0x80 cộng với 6 bit từ thứ 13 tới 18; byte thứ ba có giá trị
    0x80 cộng với 6 bit từ thứ 7 tới thứ 12; byte thứ tư có giá trị 0x80
    cộng với 6 bit từ thứ 1 tới thứ 6

Hiện nay, các giá trị khác ngoài các giá trị trên đều chưa được sử
dụng. Tuy nhiên, các chuỗi ký tự dài tới 6 byte có thể được dùng trong
tương lai.

Mối liên hệ giữa UTF8 và Unicode

Phần này chính là cách chuyển đổi mã hóa giữa UTF8 và Unicode. Dựa vào
quy tắc trên ta có thể suy luận ra các chuyển đổi. Với chúng ta chỉ cần
cách chuyển đến nhưng ký tự UTF8 sử dụng 3 byte là đã quá đủ dùng rồi Việt hóa J2ME (phần 8) - Ký tự Tiếng Việt trong J2ME - Tổng quan về bộ mã UTF8  10. Cụ thể như sau:

Từ Unicode sang UTF8

+ Đổi các ký tự unicode sang hệ thập phân (A)
+ Nếu A nhỏ hơn 128 -> giữ nguyên A và trả nó về ASCII
+ Nếu A lớn hơn 128 thì lấy giá trị đó trừ đi 128, rôi chia lấy nguyên với 64, kết quả được bao nhiêu cộng với 194 (B)
+ Nếu B < 224 thì suy ra ký tự này có 2 byte, byte thứ nhất chính là
B, còn byte thứ 2 bằng A chia lấy dư với 64 rồi cộng 128 (Z) (số Z này
luôn là ký tự đứng cuối cùng trong
+ Nếu B > 223 suy ra ký tự gồm 3 byte, cách tính 3 byte này hoàn
toàn tương tự như trên. Tức là byte cuối tính theo Z, phần còn lại (tạm
gọi là C) chia làm 2 byte, byte giữa tính theo Z của C, còn byte đầu
tính theo B của C
+ Với 4, 5 hay 6 byte thì cũng làm như vậy hết

Vậy nhé, có cách chuyển xuôi rồi thì chỉ cần lần ngược lại là có cách chuyển từ UTF8 sang Unicode rồi, tự làm nhé :D


Có khó hiểu không nhỉ???????? Nếu bạn thấy khó hiểu cũng không sao, bài
này đã là nâng cao lắm rồi, khi xem xong và hiểu bài này cùng với bài Cấu trúc chung của chuỗi trong J2ME
cộng thêm thành thạo một ngôn ngữ lập trình thì chắc chắn việc Việt hóa
J2ME không cần phải phụ thuộc bất kỳ tool nào mình đã giới thiệu trong
loạt bài cơ bản nữa rôi!
Về Đầu Trang Go down
 

Việt hóa J2ME (phần 8) - Ký tự Tiếng Việt trong J2ME - Tổng quan về bộ mã UTF8

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 

 Similar topics

-
» Việt hóa J2ME (phần 7) - Cấu trúc chung của chuỗi trong J2ME
» Việt hóa J2ME (phần 10) - Sử dụng kỹ năng lập trình trong việt hóa
» Việt hóa J2ME (phần 6) - Việt hóa ứng dụng J2ME đầu tiên
» Việt hóa J2ME (phần 2) - Giới thiệu các tool cơ bản để Việt hóa game Java
» Việt hóa J2ME (phần 5) - Sử dụng Chinese để Việt hóa các trò chơi Trung Quốc
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
TIÊN DU 1 :: Trò chuyện :: Không gian IT-
Chuyển đến