Mã hóa kí tự trong HTML (Charset)

Để hiển thị một trang HTML đúng quy cách, trình duyệt web cần phải biết sử dụng bộ kí tự nào (mã hóa kí tự).

Mã hóa kí tự là gì?

ASCII là chuẩn mã hóa kí tự (character encoding) đầu tiên (còn được gọi là bộ kí tự – character set). ASCII định nghĩa 128 kí tự kiểu chữ số: các số từ 0 đến 9, các chữ cái tiếng Anh từ A tới Z và một số kí tự đặc biệt như ! $ + – ( ) @ < >.

ANSI (Windows-1252) là bộ kí tự Windows đầu tiên hỗ trợ 256 kí tự khác nhau. ISO-8859-1 là bộ kí tự mặc định cho HTML 4, cũng hỗ trợ 256 kí tự.

Do ANSI và ISO-8859-1 rất giới hạn, nên HTML 4 còn hỗ trợ cả UTF-8. UTF-8 (Unicode) gồm hầu hết tất cả các kí tự và biểu tượng trên thế giới. HTML5 mặc định dùng bộ kí tự UTF-8.

Thuộc tính charset trong HTML

Việc trình duyệt hiển thị trang HTML bằng bộ kí tự nào được xác định trong thẻ <meta>.

Với HTML 4

<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">

Với HTML 5

<meta charset="UTF-8">

Nếu trình duyệt phát hiện ISO-8859-1 trên trang web, nó sẽ mặc định chuyển sang ANSI vì ANSI cũng giống ISO-8859-1, ngoại trừ việc có thêm 32 kí tự khác.

Sự khác biệt giữa các bộ kí tự

Bảng dưới đây cho thấy sự khác biệt giữa các bộ kí tự nói trên.

Số ASCII ANSI 8859 UTF-8 Mô tả
32 khoảng trắng
33 ! ! ! ! dấu chấm than
34 dấu nháy kép
35 # # # # dấu thăng
36 $ $ $ $ dấu đô-la
37 % % % % dấu phần trăm
38 & & & & dấu và
39 dấu nháy đơn
40 ( ( ( ( mở ngoặc kép
41 ) ) ) ) đóng ngoặc kép
42 * * * * dấu sao
43 + + + + dấu cộng
44 , , , , dấu phẩy
45 dấu gạch ngang
46 . . . . dấu chấm
47 / / / / dấu xổ chéo
48 0 0 0 0 số 0
49 1 1 1 1 số 1
50 2 2 2 2 số 2
51 3 3 3 3 số 3
52 4 4 4 4 số 4
53 5 5 5 5 số 5
54 6 6 6 6 số 6
55 7 7 7 7 số 7
56 8 8 8 8 số 8
57 9 9 9 9 số 9
58 : : : : dấu phẩy
59 ; ; ; ; dấu chấm phẩy
60 < < < < dấu nhỏ hơn
61 = = = = dấu bằng
62 > > > > dấu lớn hơn
63 ? ? ? ? dấu hỏi
64 @ @ @ @ dấu a còng
65 A A A A Chữ A viết hoa
66 B B B B Chữ B viết hoa
67 C C C C Chữ C viết hoa
68 D D D D Chữ D viết hoa
69 E E E E Chữ E viết hoa
70 F F F F Chữ F viết hoa
71 G G G G Chữ G viết hoa
72 H H H H Chữ H viết hoa
73 I I I I Chữ I viết hoa
74 J J J J Chữ J viết hoa
75 K K K K Chữ K viết hoa
76 L L L L Chữ L viết hoa
77 M M M M Chữ M viết hoa
78 N N N N Chữ N viết hoa
79 O O O O Chữ O viết hoa
80 P P P P Chữ P viết hoa
81 Q Q Q Q Chữ Q viết hoa
82 R R R R Chữ R viết hoa
83 S S S S Chữ S viết hoa
84 T T T T Chữ T viết hoa
85 U U U U Chữ U viết hoa
86 V V V V Chữ V viết hoa
87 W W W W Chữ W viết hoa
88 X X X X Chữ X viết hoa
89 Y Y Y Y Chữ Y viết hoa
90 Z Z Z Z Chữ Z viết hoa
91 [ [ [ [ mở ngoặc vuông
92 \ \ \ \ dấu xổ chéo ngược
93 ] ] ] ] đóng ngoặc vuông
94 ^ ^ ^ ^ dấu mũ
95 _ _ _ _ dấu gạch dưới
96 ` ` ` ` dấu huyền
97 a a a a Chữ a viết thường
98 b b b b Chữ b viết thường
99 c c c c Chữ c viết thường
100 d d d d Chữ d viết thường
101 e e e e Chữ e viết thường
102 f f f f Chữ f viết thường
103 g g g g Chữ g viết thường
104 h h h h Chữ h viết thường
105 i i i i Chữ i viết thường
106 j j j j Chữ j viết thường
107 k k k k Chữ k viết thường
108 l l l l Chữ l viết thường
109 m m m m Chữ m viết thường
110 n n n n Chữ n viết thường
111 o o o o Chữ o viết thường
112 p p p p Chữ p viết thường
113 q q q q Chữ q viết thường
114 r r r r Chữ r viết thường
115 s s s s Chữ s viết thường
116 t t t t Chữ t viết thường
117 u u u u Chữ u viết thường
118 v v v v Chữ v viết thường
119 w w w w Chữ w viết thường
120 x x x x Chữ x viết thường
121 y y y y Chữ y viết thường
122 z z z z Chữ z viết thường
123 { { { { mở ngoặc kép
124 | | | | dấu gạch thẳng
125 } } } } đóng ngoặc kép
126 ~ ~ ~ ~ dấu ngã
127 DEL
128 đồng euro
129    Không sử dụng
130 single low-9 quotation mark
131 ƒ Chữ f thường với dấu móc
132 double low-9 quotation mark
133 horizontal ellipsis
134 dagger
135 double dagger
136 ˆ modifier letter circumflex accent
137 per mille sign
138 Š Latin capital letter S with caron
139 single left-pointing angle quotation mark
140 ΠLatin capital ligature OE
141    Không sử dụng
142 Ž Latin capital letter Z with caron
143    Không sử dụng
144    Không sử dụng
145 left single quotation mark
146 right single quotation mark
147 left double quotation mark
148 right double quotation mark
149 bullet
150 en dash
151 em dash
152 ˜ small tilde
153 trade mark sign
154 š Latin small letter s with caron
155 single right-pointing angle quotation mark
156 œ Latin small ligature oe
157    không sử dụng
158 ž Latin small letter z with caron
159 Ÿ Latin capital letter Y with diaeresis
160 no-break space
161 ¡ ¡ ¡ inverted exclamation mark
162 ¢ ¢ ¢ cent sign
163 £ £ £ pound sign
164 ¤ ¤ ¤ currency sign
165 ¥ ¥ ¥ yen sign
166 ¦ ¦ ¦ broken bar
167 § § § section sign
168 ¨ ¨ ¨ diaeresis
169 © © © copyright sign
170 ª ª ª feminine ordinal indicator
171 « « « left-pointing double angle quotation mark
172 ¬ ¬ ¬ not sign
173 soft hyphen
174 ® ® ® registered sign
175 ¯ ¯ ¯ macron
176 ° ° ° degree sign
177 ± ± ± plus-minus sign
178 ² ² ² superscript two
179 ³ ³ ³ superscript three
180 ´ ´ ´ acute accent
181 µ µ µ micro sign
182 pilcrow sign
183 · · · middle dot
184 ¸ ¸ ¸ cedilla
185 ¹ ¹ ¹ superscript one
186 º º º masculine ordinal indicator
187 » » » right-pointing double angle quotation mark
188 ¼ ¼ ¼ vulgar fraction one quarter
189 ½ ½ ½ vulgar fraction one half
190 ¾ ¾ ¾ vulgar fraction three quarters
191 ¿ ¿ ¿ inverted question mark
192 À À À Latin capital letter A with grave
193 Á Á Á Latin capital letter A with acute
194 Â Â Â Latin capital letter A with circumflex
195 Ã Ã Ã Latin capital letter A with tilde
196 Ä Ä Ä Latin capital letter A with diaeresis
197 Å Å Å Latin capital letter A with ring above
198 Æ Æ Æ Latin capital letter AE
199 Ç Ç Ç Latin capital letter C with cedilla
200 È È È Latin capital letter E with grave
201 É É É Latin capital letter E with acute
202 Ê Ê Ê Latin capital letter E with circumflex
203 Ë Ë Ë Latin capital letter E with diaeresis
204 Ì Ì Ì Latin capital letter I with grave
205 Í Í Í Latin capital letter I with acute
206 Î Î Î Latin capital letter I with circumflex
207 Ï Ï Ï Latin capital letter I with diaeresis
208 Ð Ð Ð Latin capital letter Eth
209 Ñ Ñ Ñ Latin capital letter N with tilde
210 Ò Ò Ò Latin capital letter O with grave
211 Ó Ó Ó Latin capital letter O with acute
212 Ô Ô Ô Latin capital letter O with circumflex
213 Õ Õ Õ Latin capital letter O with tilde
214 Ö Ö Ö Latin capital letter O with diaeresis
215 × × × multiplication sign
216 Ø Ø Ø Latin capital letter O with stroke
217 Ù Ù Ù Latin capital letter U with grave
218 Ú Ú Ú Latin capital letter U with acute
219 Û Û Û Latin capital letter U with circumflex
220 Ü Ü Ü Latin capital letter U with diaeresis
221 Ý Ý Ý Latin capital letter Y with acute
222 Þ Þ Þ Latin capital letter Thorn
223 ß ß ß Latin small letter sharp s
224 à à à Latin small letter a with grave
225 á á á Latin small letter a with acute
226 â â â Latin small letter a with circumflex
227 ã ã ã Latin small letter a with tilde
228 ä ä ä Latin small letter a with diaeresis
229 å å å Latin small letter a with ring above
230 æ æ æ Latin small letter ae
231 ç ç ç Latin small letter c with cedilla
232 è è è Latin small letter e with grave
233 é é é Latin small letter e with acute
234 ê ê ê Latin small letter e with circumflex
235 ë ë ë Latin small letter e with diaeresis
236 ì ì ì Latin small letter i with grave
237 í í í Latin small letter i with acute
238 î î î Latin small letter i with circumflex
239 ï ï ï Latin small letter i with diaeresis
240 ð ð ð Latin small letter eth
241 ñ ñ ñ Latin small letter n with tilde
242 ò ò ò Latin small letter o with grave
243 ó ó ó Latin small letter o with acute
244 ô ô ô Latin small letter o with circumflex
245 õ õ õ Latin small letter o with tilde
246 ö ö ö Latin small letter o with diaeresis
247 ÷ ÷ ÷ division sign
248 ø ø ø Latin small letter o with stroke
249 ù ù ù Latin small letter u with grave
250 ú ú ú Latin small letter u with acute
251 û û û Latin small letter with circumflex
252 ü ü ü Latin small letter u with diaeresis
253 ý ý ý Latin small letter y with acute
254 þ þ þ Latin small letter thorn
255 ÿ ÿ ÿ Latin small letter y with diaeresis

Bộ kí tự ASCII

ASCII dùng giá trị từ 0 tới 31 (và 127) để kiểm soát các kí tự, từ 32 tới 126 cho các chữ cái, chữ số và biểu tượng. ASCII không dùng các giá trị và 128 tới 255.

Bộ kí tự ANSI (Windows-1252)

ANSI giống ASCII với các giá trị từ 0 tới 127, có thêm các kí tự giá trị từ 128 tới 159, giống với UTF-8 ở các giá trị từ 160 tới 255.

Bộ kí tự ISO-8859-1

8859-1 giống với ASCII ở các giá trị từ 0 tới 127, không dùng các giá trị từ 128 tới 159, giống UTF-8 ở các giá trị từ 160 tới 255.

Bộ kí tự UTF-8

UTF-8 giống ASCII ở các giá trị từ 0 tới 127, không dùng các giá trị từ 128 tới 159, giống cả ANSI và 8859-1 ở các giá trị từ 160 tới 255, tiếp nối các giá trị từ 256 với hơn 10.000 kí tự khác.

Quy tắc @charset trong CSS

Có thể dùng quy tắc @charset trong CSS để xác định cách mã hóa kí tự dùng trong tập tin style sheet. Ví dụ dưới đây chọn kiểu Unicode UTF-8 cho trang.

@charset "UTF-8";