Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

font 1 byte , font 2 byte?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • font 1 byte , font 2 byte?

    các bạn cho mình hoi?
    font 1 byte, font 2 byte là như thế nào, nó có ảnh hưởng gì trong access?
    xin cảm ơn.

  • #2
    Font 1 byte là font chuẩn cũ - mã hoá được 256 ký tự thôi - còn font 2 byte là font Unicode mà hoá được nhiều hơn (65536 - không bít có đủ cho cả thế giới không?)
    Mai Anh Tuấn:)

    Comment


    • #3
      Originally posted by tuanevnit
      còn font 2 byte là font Unicode mà hoá được nhiều hơn (65536 - không bít có đủ cho cả thế giới không?)
      Font 2 byte không phải là Unicode (dù một phần thông dụng của chuẩn Unicode được mã bằng 2 byte).
      Font 2 byte là font cho mã tiếng Việt kiểu tổ hợp, tỉ như VNI. Nó dùng 1 byte cho chữ và 1 byte thêm cho dấu nếu đó là ký tự tiếng Việt. ví dụ chữ a (1 byte) đi sau là dấu sắc (1 byte) thì thành chữ 'à'.

      Comment


      • #4
        Originally posted by myquartz
        Originally posted by tuanevnit
        còn font 2 byte là font Unicode mà hoá được nhiều hơn (65536 - không bít có đủ cho cả thế giới không?)
        Font 2 byte không phải là Unicode (dù một phần thông dụng của chuẩn Unicode được mã bằng 2 byte).
        Font 2 byte là font cho mã tiếng Việt kiểu tổ hợp, tỉ như VNI. Nó dùng 1 byte cho chữ và 1 byte thêm cho dấu nếu đó là ký tự tiếng Việt. ví dụ chữ a (1 byte) đi sau là dấu sắc (1 byte) thì thành chữ 'à'.
        Font 2 byte đơn giản là một loại font, và cũng đơn giản nó được dùng 2 byte để mã hóa. Không chỉ thấy trong VietNam's Font vậy nên anh nevnit mới nói là "]
        Originally posted by tuanevnit
        còn font 2 byte là font Unicode mà hoá được nhiều hơn (65536 - không bít có đủ cho cả thế giới không?)
        :D Bác nào có ý kiên khác không, à còn cái Access ấy à :D, bạn hỏi "to Access" thì chắc chắn là chẳng có liên quan gì còn nếu là "MS Access" thì tùy version thôi.....
        :D.......
        Thân 2!

        Comment


        • #5
          RE: font 1 byte , font 2 byte?

          cảm ơn các bạn đã trả lời mình, ý mình hỏi là trong Ms Access 2000

          Comment


          • #6
            Originally posted by emThuy

            Font 2 byte không phải là Unicode (dù một phần thông dụng của chuẩn Unicode được mã bằng 2 byte).
            Font 2 byte là font cho mã tiếng Việt kiểu tổ hợp, tỉ như VNI. Nó dùng 1 byte cho chữ và 1 byte thêm cho dấu nếu đó là ký tự tiếng Việt. ví dụ chữ a (1 byte) đi sau là dấu sắc (1 byte) thì thành chữ 'à'.
            Font 2 byte đơn giản là một loại font, và cũng đơn giản nó được dùng 2 byte để mã hóa. Không chỉ thấy trong VietNam's Font vậy nên anh nevnit mới nói là

            [/quote]
            Đúng là đơn giản nó chỉ là một loại font, tuy nhiên nói font 2 byte là cách nói giản lược của cụm từ: "Bộ phông mà các chữ tiếng Việt mã hoá bằng 2 bytes". Cái thuật ngữ font 2 bytes chỉ dùng cho các loại mã tiếng Việt tự phát như là VNI thôi.
            Còn Unicode, chữ theo chuẩn này có thể không chỉ mã hoá bằng 2 byte, tỉ như tất cả các chữ theo chuẩn Unicode trong mặt phẳng đa ngữ số 0 (khoảng 65 ngàn chữ đã được định nghĩa trong này, có cả tiếng Việt) thì nếu mã hoá theo kiểu USC-2 thì sẽ là 2 byte, nhưng nếu theo kiểu UTF-8 thì có thể từ 1 đến 4 byte. Và trong Unicode tiếng Việt cũng có kiểu tổ hợp, chữ và dấu là 2 phần độc lập, và để thể hiện 1 chữ tiếng Việt có dấu (chữ ẵ chẳng hạn) theo kiểu UTF-8 có thể cần đến 6 bytes đấy.
            Nên xem kĩ các khái niệm về vấn đề này trước khi đưa ra trả lời.

            Comment


            • #7
              Chào anh myquartz, chẳng mấy khi gặp được người nhiều "chữ nghĩa" như anh (ý em nói là kiến thức về Font ấy :D). Anh có thể giải thíc hộ em khái niệm "tất cả các chữ theo chuẩn Unicode trong mặt phẳng đa ngữ số 0" không?


              Thân 2!

              Comment


              • #8
                A mà trong MS Access 2000 (or >>) thì ntn?

                Thân 2!

                Comment


                • #9
                  Tôi tìm lại 1 bài tôi đã viết cho mail group lớp tôi, khá lâu rồi.

                  Tìm hiểu sơ qua về Unicode

                  Tài liệu tham khảo tại: PC World số tháng 12/2001, trang 68, và http://www.unicode.org/unicode/uni2book/

                  Unicode là gì?
                  Unicode là Hiệp hội Các Nhà Sản xuất Phần mềm Đa ngữ, tổ chức đã cho ra đời bộ mã ký tự có tên gọi Unicode, có khả năng mã hoá chữ viết của tất cả các ngôn ngữ hiện có trên thế giới và cả trong tương lai.

                  Tổ chức ISO đã hợp tác với hiệp hội Unicode và thống nhất bộ mã Unicode, mặc dù ISO gọi tên nó khác với Unicode, nhưng chúng hoàn toàn tương đương nhau. Tên gọi bộ mã đa ngữ của ISO là ISO10646 hay UCS (Universal Character Set). Tuy nhiên tên gọi Unicode thông dụng hơn, và bài này ta cũng gọi nó là Unicode.

                  Unicode đã phát triển từ phiên bản 1.0 đến 3.1, từ bản 2.0 trở đi có định nghĩa tiếng Việt. Unicode dùng 4 byte để miêu tả 1 ký tự trong không gian mã 2^31 (2 tỉ ký tự). Tuy nhiên nó được chia thành các plane (mặt phẳng) khác nhau, mỗi mặt phẳng là 65.536 ký tự (dùng 16 bit để mô tả), được đánh số từ 0. Hiện người ta mới chỉ tìm ra và thống nhất được khoảng 1 triệu ký tự, trong số này có 65.534 ký tự đầu (0000 đến fffd) là được dùng phổ biến trên thế giới, tập con đầu tiên này gọi là mặt phẳng đa ngữ cơ bản BMP (Basic Multilingual Plane) vào gọi tắt là BMP0. Do vậy hầu hết các hệ điều hành và ứng dụng đều chỉ cố gắng xử lý các ký tự trong BMP0 này và để mã hoá BMP0 chỉ cần 2 byte là đủ.

                  Một điểm nữa là 256 ký tự đầu tiên của bộ mã Unicode/BMP0 được đặt trùng với 256 ký tự của bộ mã ASCII (mở rộng) để đảm bảo tương thích.

                  Mã hoá Unicode
                  Do máy tính xử lý theo các byte, để biểu diễn 4 byte của bộ mã Unicode, người ta có các cách biểu diễn sau:

                  UCS-2:
                  Mỗi ký tự được mô tả bởi 2 byte liên tiếp. Cách này chỉ có thể mô tả được BMP0. Cách này bao gồm 2 cách đặt byte trong bộ nhớ là UCS-2LE (Little Endian) và UCS-2BE (Big Endian). Cách UCS-2LE được dùng cho phần mềm chạy trên các bộ xử lý Intel do cách sắp xếp 2 byte trong 1 word là byte thấp nằm trước (ở địa chỉ nhỏ hơn) và byte cao nằm sau.

                  UCS-4:
                  Mỗi ký tự được mô tả bởi 4 byte liên tiếp. Cách này có thể mô tả được toàn bộ bảng mã Unicode. Cách này cũng gồm 2 cách đặt các byte trong bộ nhớ mà có tên là UCS-2LE (Little Endian) và UCS-2BE (Big Endian).

                  UTF-8:
                  Các cách mã hoá trên đều không tương thích với bộ mã ASCII 7bit (ASCII chuẩn, 128 ký tự). UTF-8 ra đời nhằm đưa ra một cách mã hoá sao cho với các văn bản chỉ dùng ký tự tiếng Anh chuẩn mã với ASCII 7bit sẽ giống hệt với văn bản mã hoá UTF-8. Cách mã hoá UTF-8 có thể chiếm từ 1 đến 6 byte như sau:

                  Mã Unicode từ 0000.0000H - 0000.007FH sẽ thành 1 byte: 0xxx.xxxxB
                  Mã Unicode từ 0000.0080H - 0000.07FFH sẽ thành 2 byte: 110x.xxxxB 10xx.xxxxB
                  Mã Unicode từ 0000.0800H - 0000.FFFFH sẽ thành 3 byte: 1110.xxxxB 10xx.xxxxB 10xx.xxxxB
                  Mã Unicode từ 0001.0000H - 001F.FFFFH sẽ thành 4 byte: 1111.0xxxB 10xx.xxxxB 10xx.xxxxB 10xx.xxxxB
                  Mã Unicode từ 0020.0000H - 03FF.FFFFH sẽ thành 5 byte: 1111.10xxB 10xx.xxxxB 10xx.xxxxB 10xx.xxxxB 10xx.xxxxB
                  Mã Unicode từ 0400.0000H - 7FFF.FFFFH sẽ thành 6 byte: 1111.110xB 10xx.xxxxB 10xx.xxxxB 10xx.xxxxB 10xx.xxxxB 10xx.xxxxB
                  Với 1 đến 3 byte, UTF-8 đã có khả năng mã hoá toàn bộ BMP0.

                  UTF-16:
                  Cách mã hoá UCS-2 mặc dù được sử dụng rộng rãi và được các hệ điều hành hỗ trợ, nhưng nó cũng chỉ hiện chỉ mã hoá được các mã trong BMP0. Mà hiện tại có tới hơn 1 triệu ký tự được thống nhất và được định nghĩa, do vậy phải có 1 cách khác để định nghĩa các mã này mở rộng cho UCS-2. UTF-16 là mở rộng của UCS-2 và có thể định nghĩa được 17 plane, có nghĩa là 221 mã khác nhau.

                  UTF-32:
                  UTF-32 tương tự như UCS-4.

                  Các hệ điều hành và ứng dụng với Unicode.
                  Microsoft Windows
                  Hiện tại Microsoft Windows chủ yếu hỗ trợ UCS-2LE (do chạy trên nền Intel). Vả lại, chỉ có Windows NT4.0/2000/XP hỗ trợ UCS-2 trong nhân hệ điều hành, còn các Windows 9x/Me chỉ hỗ trợ rất hạn chế. Windows CE (chạy trên các hệ thống nhúng) cũng hỗ trợ Unicode từ trong nhân.

                  Các phần mềm chạy trên Windows cũng hỗ trợ hiện cũng chỉ bao gồm những nhóm ứng dụng sau:

                  Nhóm ứng dụng văn phòng như Microsoft Office (từ Office 97 trở lên).
                  Các ứng dụng soạn thảo văn bản như NotePad, WordPad (chỉ khi chạy trên NT/2K/XP)
                  Các ứng dụng duyệt web như: Internet Explorer, Mozilla, Netscape.
                  Một số hệ quản trị cơ sơ dữ liệu như Access, SQL Server vẫn ở mức hạn chế.
                  Linux
                  Linux lại chủ yếu hỗ trợ UTF-8. Bản thân Linux cũng được thiết kế hỗ trợ đa ngữ ngay từ đầu, nên các ứng dụng trong Linux cũng hỗ trợ Unicode.

                  Phát triển ứng dụng hỗ trợ Unicode.
                  Microsoft Windows
                  Chỉ có Windows NT4/2000/XP trở lên hỗ trợ cho Unicode bằng các hàm API, các hàm API có liên quan đến chuỗi ký tự đều có 2 dạng: Unicode và ASCII. Hàm hỗ trợ Unicode thường được kết thúc bằng chữ W, còn hàm cho ASCII thì kết thúc bằng chữ A. Windows 9x/Me thì chỉ chủ yếu hỗ trợ ASCII. Riêng trên Windows CE thì chỉ có hàm hỗ trợ Unicode, không hỗ trợ ASCII.

                  Môi trường phát triển Visual Studio 6.0 không hỗ trợ Unicode, do vậy bạn không thể soạn thảo chuỗi Unicode UCS-2 trên hệ soạn thảo tích hợp này, hoặc đánh nó vào form (với VB), resource (với VC), ngay cả khi chạy với 2000/XP (các form có sẵn của 2000/XP đều cho phép đánh chữ UCS-2 vào và hiển thị đúng). Với Visual Studio .Net tôi chưa nghiên cứu.

                  Tuy nhiên bạn vẫn có thể biên dịch và phát triển các ứng dụng hỗ trợ Unicode được với Visual C++ 6.0. MFC cũng được thiết kế hỗ trợ cả Unicode lẫn ASCII chuẩn. Lưu ý là với các ứng dụng viết bằng MFC Unicode, thì chỉ có thể chạy trên Windows NT/2K/XP. Các API trong chế độ dịch Unicode thực chất là chuyển thành các lời gọi hàm API Unicode tương ứng được hỗ trợ trong NT/2K/XP. Xin tham khảo trong MSDN để biết cách hỗ trợ Unicode.

                  Khi phát triển ứng dụng cơ sở dữ liệu hỗ trợ Unicode. Thực chất chuỗi UCS-2 hoặc UTF-8 là chuỗi các byte, giống như mọi chuỗi ASCII khác, do vậy hoàn toàn có thể lập trình lưu vào cơ sở dữ liệu như SQL Server, Access như và coi đó như các chuỗi ASCII bình thường. Tuy nhiên khi dùng các front-end manager của SQL Server hay Access để view/update bản ghi thì có thể không hiển thị đúng.

                  MyQuartz (viết ngày 16/01/2003)

                  Comment


                  • #10
                    Tài liệu tham khảo:
                    PC World số tháng 11/2004 page 121 có viết về vấn đề font Uni trong MS Accesss 2000.
                    Xin phép không đưa nội dung nên vì emThuy tôn trọng bản quyền của tác giả Nguyễn Văn Hiệp

                    Thân 2!

                    Comment

                    Working...
                    X