CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 63

63

Chương 2: Thao tác dữ liệu

Sử dụng lớp

System.Text.Encoding

và các lớp con của nó để chuyển đổi ký tự

giữa các kiểu mã hóa khác nhau.

Unicode không phải là kiểu mã hóa duy nhất, cũng như UTF-16 không phải cách duy nhất
biểu diễn ký tự Unicode. Khi ứng dụng cần trao đổi dữ liệu ký tự với các hệ thống bên ngoài
(đặc biệt là các hệ thống cũ), dữ liệu cần phải được chuyển đổi giữa UTF-16 và kiểu mã hóa
mà hệ thống đó hỗ trợ.
Lớp trừu tượng

Encoding

, và các lớp con của nó cung cấp các chức năng để chuyển ký tự qua

lại giữa nhiều kiểu mã hóa khác nhau. Mỗi thể hiện của lớp con hỗ trợ việc chuyển đổi giữa
UTF-16 và một kiểu mã hóa khác. Phương thức tĩnh

Encoding.GetEncoding

nhận vào tên hoặc

số hiệu trang mã (code page number) của một kiểu mã hóa và trả về thể hiện của lớp mã hóa
tương ứng.
Bảng 2.1 liệt kê một vài kiểu mã ký tự và số hiệu trang mã mà bạn phải truyền cho phương
thức

GetEncoding

để tạo ra thể hiện của lớp mã hóa tương ứng. Bảng này cũng cung cấp các

thuộc tính tĩnh của lớp

Encoding

đại diện cho phương thức

GetEncoding

tương ứng.

Bảng 2.1 Các lớp mã hóa ký tự

Kiểu mã hóa

Lớp

Sử dụng

ASCII

ASCIIEncoding

GetEncoding(20127)

hay thuộc tính

ASCII

Mặc định (kiểu mã hóa

hiện hành trên hệ thống)

Encoding

GetEncoding(0)

hay thuộc tính

Default

UTF-7

UTF7Encoding

GetEncoding(65000)

hay thuộc tính

UTF7

UTF-8

UTF8Encoding

GetEncoding(65001)

hay thuộc tính

UTF8

UTF-16 (Big Endian)

UnicodeEncoding

GetEncoding(1201)

hay thuộc tính

BigEndianUnicode

UTF-16 (Little Endian)

UnicodeEncoding

GetEncoding(1200)

hay thuộc tính

Unicode

Windows OS

Encoding

GetEncoding(1252)

Sau khi đã lấy được đối tượng lớp

Encoding

hỗ trợ kiểu mã hóa thích hợp, sử dụng phương

thức

GetBytes

để chuyển chuỗi nguồn (được mã hóa theo UTF-16) thành mảng kiểu byte chứa

các ký tự được mã hóa theo kiểu cần chuyển, và sử dụng

GetString

để chuyển mảng byte

thành chuỗi đích. Ví dụ dưới đây trình bày cách sử dụng một vài lớp mã hóa:

using System;

using System.IO;

using System.Text;

public class CharacterEncodingExample {

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.