Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1025 lines
41 KiB

  1. <html>
  2. <head>
  3. <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
  4. <meta name="ProgId" content="FrontPage.Editor.Document">
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  6. <link rel="stylesheet" href="http://www.unicode.org/unicode.css" type="text/css">
  7. <title>UnicodeData File Format</title>
  8. </head>
  9. <body>
  10. <h1>UnicodeData File Format<br>
  11. Version 3.0.1</h1>
  12. <table border="1" cellspacing="2" cellpadding="0" height="87" width="100%">
  13. <tr>
  14. <td valign="TOP" width="144">Revision</td>
  15. <td valign="TOP">3.0.1</td>
  16. </tr>
  17. <tr>
  18. <td valign="TOP" width="144">Authors</td>
  19. <td valign="TOP">Mark Davis and Ken Whistler</td>
  20. </tr>
  21. <tr>
  22. <td valign="TOP" width="144">Date</td>
  23. <td valign="TOP">2000-08-17</td>
  24. </tr>
  25. <tr>
  26. <td valign="TOP" width="144">This Version</td>
  27. <td valign="TOP"><a
  28. href="http://www.unicode.org/Public/3.0-Update1/UnicodeData-3.0.1.html">http://www.unicode.org/Public/3.0-Update1/UnicodeData-3.0.1.html</a></td>
  29. </tr>
  30. <tr>
  31. <td valign="TOP" width="144">Previous Version</td>
  32. <td valign="TOP"><a
  33. href="http://www.unicode.org/Public/3.0-Update/UnicodeData-3.0.0.html">http://www.unicode.org/Public/3.0-Update/UnicodeData-3.0.0.html</a></td>
  34. </tr>
  35. <tr>
  36. <td valign="TOP" width="144">Latest Version</td>
  37. <td valign="TOP"><a
  38. href="http://www.unicode.org/Public/UNIDATA/UnicodeData.html">http://www.unicode.org/Public/UNIDATA/UnicodeData.html</a></td>
  39. </tr>
  40. </table>
  41. <p align="center">Copyright © 1995-2000 Unicode, Inc. All Rights reserved.<br>
  42. <i>For more information, including Disclamer and Limitations, see <a
  43. href="UnicodeCharacterDatabase-3.0.1.html">UnicodeCharacterDatabase-3.0.1.html</a></i></p>
  44. <p>This document describes the format of the UnicodeData.txt file, which is one
  45. of the files in the Unicode Character Database. The document is divided into the
  46. following sections:
  47. <ul>
  48. <li><a href="#Field Formats">Field Formats</a>
  49. <ul>
  50. <li><a href="#General Category">General Category</a></li>
  51. <li><a href="#Bidirectional Category">Bidirectional Category</a></li>
  52. <li><a href="#Character Decomposition">Character Decomposition Mapping</a></li>
  53. <li><a href="#Canonical Combining Classes">Canonical Combining Classes</a></li>
  54. <li><a href="#Decompositions and Normalization">Decompositions and
  55. Normalization</a></li>
  56. <li><a href="#Case Mappings">Case Mappings</a></li>
  57. </ul>
  58. </li>
  59. <li><a href="#Property Invariants">Property Invariants</a></li>
  60. <li><a href="#Modification History">Modification History</a></li>
  61. </ul>
  62. <p><b>Warning: </b>the information in this file does not completely describe the
  63. use and interpretation of Unicode character properties and behavior. It must be
  64. used in conjunction with the data in the other files in the <a
  65. href="UnicodeCharacterDatabase-3.0.1.html">Unicode Character Database</a>, and
  66. relies on the notation and definitions supplied in <i><a
  67. href="http://www.unicode.org/unicode/standard/versions/Unicode3.0.html">The
  68. Unicode Standard</a></i>. All chapter references are to Version 3.0 of the
  69. standard.</p>
  70. <h2><a name="Field Formats"></a>Field Formats</h2>
  71. <p>The file consists of lines containing fields separated by semicolons. Each
  72. line represents the data for one encoded character in the Unicode Standard.
  73. Every encoded character has a data entry, with the exception of certain special
  74. ranges, as detailed below.
  75. <ul>
  76. <li>There are nine special ranges of characters that are represented only by
  77. their start and end characters, since the properties in the file are
  78. uniform, except for code values (which are all sequential and assigned).</li>
  79. <li>The names of CJK ideograph characters and the names and decompositions of
  80. Hangul syllable characters are algorithmically derivable. (See the Unicode
  81. Standard and <a href="http://www.unicode.org/unicode/reports/tr15/">Unicode
  82. Standard Annex #15</a> for more information).</li>
  83. <li>Surrogate code values and private use characters have no names.</li>
  84. <li>The Private Use character outside of the BMP (U+F0000..U+FFFFD,
  85. U+100000..U+10FFFD) are listed as distinct ranges. These correspond to surrogate pairs
  86. where the first surrogate is in the High Surrogate Private Use section.</li>
  87. </ul>
  88. <p>The exact ranges represented by start and end characters are:
  89. <ul>
  90. <li>CJK Ideographs Extension A (U+3400 - U+4DB5)</li>
  91. <li>CJK Ideographs (U+4E00 - U+9FA5)</li>
  92. <li>Hangul Syllables (U+AC00 - U+D7A3)</li>
  93. <li>Non-Private Use High Surrogates (U+D800 - U+DB7F)</li>
  94. <li>Private Use High Surrogates (U+DB80 - U+DBFF)</li>
  95. <li>Low Surrogates (U+DC00 - U+DFFF)</li>
  96. <li>The Private Use Area (U+E000 - U+F8FF)</li>
  97. <li>Plane 15 Private Use Area (U+F0000 - U+FFFFD)</li>
  98. <li>Plane 16 Private Use Area (U+100000 - U+10FFFD)</li>
  99. </ul>
  100. <p>The following table describes the format and meaning of each field in a data
  101. entry in the UnicodeData file. Fields which contain normative information are so
  102. indicated.</p>
  103. <table border="1" cellspacing="2" cellpadding="2">
  104. <tr>
  105. <th valign="top" align="LEFT">
  106. <p align="LEFT">Field</th>
  107. <th valign="top" align="LEFT">
  108. <p align="LEFT">Name</th>
  109. <th valign="top" align="LEFT">
  110. <p align="LEFT">Status</th>
  111. <th valign="top" align="LEFT">
  112. <p align="LEFT">Explanation</th>
  113. </tr>
  114. <tr>
  115. <th valign="top">0</th>
  116. <td valign="top">Code value</td>
  117. <td valign="top">normative</td>
  118. <td valign="top">Code value. For characters in the range U+0000..U+FFFD
  119. the code value uses a 4-digit hexadecimal format; for characters in the
  120. range U+10000..U+FFFFD the code value uses a 5-digit hexadecimal format;
  121. and for characters in the range U+100000..U+10FFFD the code value uses a
  122. 6-digit hexadecimal format.</td>
  123. </tr>
  124. <tr>
  125. <th valign="top">1</th>
  126. <td valign="top">Character name</td>
  127. <td valign="top">normative</td>
  128. <td valign="top">These names match exactly the names published in Chapter 14
  129. of the Unicode Standard, Version 3.0.</td>
  130. </tr>
  131. <tr>
  132. <th valign="top">2</th>
  133. <td valign="top"><a href="#General Category">General Category</a></td>
  134. <td valign="top">normative / informative<br>
  135. (see below)</td>
  136. <td valign="top">This is a useful breakdown into various &quot;character
  137. types&quot; which can be used as a default categorization in
  138. implementations. See below for a brief explanation.</td>
  139. </tr>
  140. <tr>
  141. <th valign="top">3</th>
  142. <td valign="top"><a href="#Canonical Combining Classes">Canonical Combining
  143. Classes</a></td>
  144. <td valign="top">normative</td>
  145. <td valign="top">The classes used for the Canonical Ordering Algorithm in
  146. the Unicode Standard. These classes are also printed in Chapter 4 of the
  147. Unicode Standard.</td>
  148. </tr>
  149. <tr>
  150. <th valign="top">4</th>
  151. <td valign="top"><a href="#Bidirectional Category">Bidirectional Category</a></td>
  152. <td valign="top">normative</td>
  153. <td valign="top">See the list below for an explanation of the abbreviations
  154. used in this field. These are the categories required by the Bidirectional
  155. Behavior Algorithm in the Unicode Standard. These categories are
  156. summarized in Chapter 3 of the Unicode Standard.</td>
  157. </tr>
  158. <tr>
  159. <th valign="top">5</th>
  160. <td valign="top"><a href="#Character Decomposition">Character Decomposition
  161. Mapping</a></td>
  162. <td valign="top">normative</td>
  163. <td valign="top">In the Unicode Standard, not all of the mappings are full
  164. (maximal) decompositions. Recursive application of look-up for
  165. decompositions will, in all cases, lead to a maximal decomposition. The
  166. decomposition mappings match exactly the decomposition mappings published
  167. with the character names in the Unicode Standard.</td>
  168. </tr>
  169. <tr>
  170. <th valign="top">6</th>
  171. <td valign="top">Decimal digit value</td>
  172. <td valign="top">normative</td>
  173. <td valign="top">This is a numeric field. If the character has the decimal
  174. digit property, as specified in Chapter 4 of the Unicode Standard, the
  175. value of that digit is represented with an integer value in this field</td>
  176. </tr>
  177. <tr>
  178. <th valign="top">7</th>
  179. <td valign="top">Digit value</td>
  180. <td valign="top">normative</td>
  181. <td valign="top">This is a numeric field. If the character represents a
  182. digit, not necessarily a decimal digit, the value is here. This covers
  183. digits which do not form decimal radix forms, such as the compatibility
  184. superscript digits</td>
  185. </tr>
  186. <tr>
  187. <th valign="top">8</th>
  188. <td valign="top">Numeric value</td>
  189. <td valign="top">normative</td>
  190. <td valign="top">This is a numeric field. If the character has the numeric
  191. property, as specified in Chapter 4 of the Unicode Standard, the value of
  192. that character is represented with an integer or rational number in this
  193. field. This includes fractions as, e.g., &quot;1/5&quot; for U+2155 VULGAR
  194. FRACTION ONE FIFTH Also included are numerical values for compatibility
  195. characters such as circled numbers.</td>
  196. </tr>
  197. <tr>
  198. <th valign="top">9</th>
  199. <td valign="top">Mirrored</td>
  200. <td valign="top">normative</td>
  201. <td valign="top">If the character has been identified as a
  202. &quot;mirrored&quot; character in bidirectional text, this field has the
  203. value &quot;Y&quot;; otherwise &quot;N&quot;. The list of mirrored
  204. characters is also printed in Chapter 4 of the Unicode Standard.</td>
  205. </tr>
  206. <tr>
  207. <th valign="top">10</th>
  208. <td valign="top">Unicode 1.0 Name</td>
  209. <td valign="top">informative</td>
  210. <td valign="top">This is the old name as published in Unicode 1.0. This name
  211. is only provided when it is significantly different from the Unicode 3.0
  212. name for the character.</td>
  213. </tr>
  214. <tr>
  215. <th valign="top">11</th>
  216. <td valign="top">10646 comment field</td>
  217. <td valign="top">informative</td>
  218. <td valign="top">This is the ISO 10646 comment field. It appears in parentheses
  219. in the 10646 names list, or contains an asterisk to mark an Annex P note.</td>
  220. </tr>
  221. <tr>
  222. <th valign="top">12</th>
  223. <td valign="top"><a href="#Case Mappings">Uppercase Mapping</a></td>
  224. <td valign="top">informative</td>
  225. <td valign="top">Upper case equivalent mapping. If a character is part of an
  226. alphabet with case distinctions, and has an upper case equivalent, then
  227. the upper case equivalent is in this field. See the explanation below on
  228. case distinctions. These mappings are always one-to-one, not one-to-many
  229. or many-to-one. This field is informative.</td>
  230. </tr>
  231. <tr>
  232. <th valign="top">13</th>
  233. <td valign="top"><a href="#Case Mappings">Lowercase Mapping</a></td>
  234. <td valign="top">informative</td>
  235. <td valign="top">Similar to Uppercase mapping</td>
  236. </tr>
  237. <tr>
  238. <th valign="top">14</th>
  239. <td valign="top"><a href="#Case Mappings">Titlecase Mapping</a></td>
  240. <td valign="top">informative</td>
  241. <td valign="top">Similar to Uppercase mapping</td>
  242. </tr>
  243. </table>
  244. <h3><a name="General Category"></a>General Category</h3>
  245. <p>The values in this field are abbreviations for the following. Some of the
  246. values are normative, and some are informative. For more information, see the
  247. Unicode Standard.</p>
  248. <p><b>Note:</b> the standard does not assign information to control characters
  249. (except for certain cases in the Bidirectional Algorithm). Implementations will
  250. generally also assign categories to certain control characters, notably CR and
  251. LF, according to platform conventions.</p>
  252. <h4>Normative Categories</h4>
  253. <table border="0" cellspacing="2" cellpadding="0">
  254. <tr>
  255. <th>
  256. <p align="LEFT">Abbr.</th>
  257. <th>
  258. <p align="LEFT">Description</th>
  259. </tr>
  260. <tr>
  261. <td align="CENTER">Lu</td>
  262. <td>Letter, Uppercase</td>
  263. </tr>
  264. <tr>
  265. <td align="CENTER">Ll</td>
  266. <td>Letter, Lowercase</td>
  267. </tr>
  268. <tr>
  269. <td align="CENTER">Lt</td>
  270. <td>Letter, Titlecase</td>
  271. </tr>
  272. <tr>
  273. <td align="CENTER">Mn</td>
  274. <td>Mark, Non-Spacing</td>
  275. </tr>
  276. <tr>
  277. <td align="CENTER">Mc</td>
  278. <td>Mark, Spacing Combining</td>
  279. </tr>
  280. <tr>
  281. <td align="CENTER">Me</td>
  282. <td>Mark, Enclosing</td>
  283. </tr>
  284. <tr>
  285. <td align="CENTER">Nd</td>
  286. <td>Number, Decimal Digit</td>
  287. </tr>
  288. <tr>
  289. <td align="CENTER">Nl</td>
  290. <td>Number, Letter</td>
  291. </tr>
  292. <tr>
  293. <td align="CENTER">No</td>
  294. <td>Number, Other</td>
  295. </tr>
  296. <tr>
  297. <td align="CENTER">Zs</td>
  298. <td>Separator, Space</td>
  299. </tr>
  300. <tr>
  301. <td align="CENTER">Zl</td>
  302. <td>Separator, Line</td>
  303. </tr>
  304. <tr>
  305. <td align="CENTER">Zp</td>
  306. <td>Separator, Paragraph</td>
  307. </tr>
  308. <tr>
  309. <td align="CENTER">Cc</td>
  310. <td>Other, Control</td>
  311. </tr>
  312. <tr>
  313. <td align="CENTER">Cf</td>
  314. <td>Other, Format</td>
  315. </tr>
  316. <tr>
  317. <td align="CENTER">Cs</td>
  318. <td>Other, Surrogate</td>
  319. </tr>
  320. <tr>
  321. <td align="CENTER">Co</td>
  322. <td>Other, Private Use</td>
  323. </tr>
  324. <tr>
  325. <td align="CENTER">Cn</td>
  326. <td>Other, Not Assigned (no characters in the file have this property)</td>
  327. </tr>
  328. </table>
  329. <h4>Informative Categories</h4>
  330. <table border="0" cellspacing="2" cellpadding="0">
  331. <tr>
  332. <th>
  333. <p align="LEFT">Abbr.</th>
  334. <th>
  335. <p align="LEFT">Description</th>
  336. </tr>
  337. <tr>
  338. <td align="CENTER">Lm</td>
  339. <td>Letter, Modifier</td>
  340. </tr>
  341. <tr>
  342. <td align="CENTER">Lo</td>
  343. <td>Letter, Other</td>
  344. </tr>
  345. <tr>
  346. <td align="CENTER">Pc</td>
  347. <td>Punctuation, Connector</td>
  348. </tr>
  349. <tr>
  350. <td align="CENTER">Pd</td>
  351. <td>Punctuation, Dash</td>
  352. </tr>
  353. <tr>
  354. <td align="CENTER">Ps</td>
  355. <td>Punctuation, Open</td>
  356. </tr>
  357. <tr>
  358. <td align="CENTER">Pe</td>
  359. <td>Punctuation, Close</td>
  360. </tr>
  361. <tr>
  362. <td align="CENTER">Pi</td>
  363. <td>Punctuation, Initial quote (may behave like Ps or Pe depending on usage)</td>
  364. </tr>
  365. <tr>
  366. <td align="CENTER">Pf</td>
  367. <td>Punctuation, Final quote (may behave like Ps or Pe depending on usage)</td>
  368. </tr>
  369. <tr>
  370. <td align="CENTER">Po</td>
  371. <td>Punctuation, Other</td>
  372. </tr>
  373. <tr>
  374. <td align="CENTER">Sm</td>
  375. <td>Symbol, Math</td>
  376. </tr>
  377. <tr>
  378. <td align="CENTER">Sc</td>
  379. <td>Symbol, Currency</td>
  380. </tr>
  381. <tr>
  382. <td align="CENTER">Sk</td>
  383. <td>Symbol, Modifier</td>
  384. </tr>
  385. <tr>
  386. <td align="CENTER">So</td>
  387. <td>Symbol, Other</td>
  388. </tr>
  389. </table>
  390. <h3><a name="Bidirectional Category"></a>Bidirectional Category</h3>
  391. <p>Please refer to Chapter 3 for an explanation of the algorithm for
  392. Bidirectional Behavior and an explanation of the significance of these
  393. categories. An up-to-date version can be found on <a
  394. href="http://www.unicode.org/unicode/reports/tr9/">Unicode Standard Annex #9:
  395. The Bidirectional Algorithm</a>. These values are normative.</p>
  396. <table border="0" cellpadding="2">
  397. <tr>
  398. <th valign="TOP" align="LEFT">
  399. <p align="LEFT">Type</th>
  400. <th valign="TOP" align="LEFT">
  401. <p align="LEFT">Description</th>
  402. </tr>
  403. <tr>
  404. <td valign="TOP"><b>L</b></td>
  405. <td valign="TOP">Left-to-Right</td>
  406. </tr>
  407. <tr>
  408. <td valign="TOP"><b>LRE</b></td>
  409. <td valign="TOP">Left-to-Right Embedding</td>
  410. </tr>
  411. <tr>
  412. <td valign="TOP"><b>LRO</b></td>
  413. <td valign="TOP">Left-to-Right Override</td>
  414. </tr>
  415. <tr>
  416. <td valign="TOP"><b>R</b></td>
  417. <td valign="TOP">Right-to-Left</td>
  418. </tr>
  419. <tr>
  420. <td valign="TOP"><b>AL</b></td>
  421. <td valign="TOP">Right-to-Left Arabic</td>
  422. </tr>
  423. <tr>
  424. <td valign="TOP"><b>RLE</b></td>
  425. <td valign="TOP">Right-to-Left Embedding</td>
  426. </tr>
  427. <tr>
  428. <td valign="TOP"><b>RLO</b></td>
  429. <td valign="TOP">Right-to-Left Override</td>
  430. </tr>
  431. <tr>
  432. <td valign="TOP"><b>PDF</b></td>
  433. <td valign="TOP">Pop Directional Format</td>
  434. </tr>
  435. <tr>
  436. <td valign="TOP"><b>EN</b></td>
  437. <td valign="TOP">European Number</td>
  438. </tr>
  439. <tr>
  440. <td valign="TOP"><b>ES</b></td>
  441. <td valign="TOP">European Number Separator</td>
  442. </tr>
  443. <tr>
  444. <td valign="TOP"><b>ET</b></td>
  445. <td valign="TOP">European Number Terminator</td>
  446. </tr>
  447. <tr>
  448. <td valign="TOP"><b>AN</b></td>
  449. <td valign="TOP">Arabic Number</td>
  450. </tr>
  451. <tr>
  452. <td valign="TOP"><b>CS</b></td>
  453. <td valign="TOP">Common Number Separator</td>
  454. </tr>
  455. <tr>
  456. <td valign="TOP"><b>NSM</b></td>
  457. <td valign="TOP">Non-Spacing Mark</td>
  458. </tr>
  459. <tr>
  460. <td valign="TOP"><b>BN</b></td>
  461. <td valign="TOP">Boundary Neutral</td>
  462. </tr>
  463. <tr>
  464. <td valign="TOP"><b>B</b></td>
  465. <td valign="TOP">Paragraph Separator</td>
  466. </tr>
  467. <tr>
  468. <td valign="TOP"><b>S</b></td>
  469. <td valign="TOP">Segment Separator</td>
  470. </tr>
  471. <tr>
  472. <td valign="TOP"><b>WS</b></td>
  473. <td valign="TOP">Whitespace</td>
  474. </tr>
  475. <tr>
  476. <td valign="TOP"><b>ON</b></td>
  477. <td valign="TOP">Other Neutrals</td>
  478. </tr>
  479. </table>
  480. <h3><a name="Character Decomposition"></a>Character Decomposition Mapping</h3>
  481. <p>The decomposition is a normative property of a character. The tags supplied
  482. with certain decomposition mappings generally indicate formatting information.
  483. Where no such tag is given, the mapping is designated as canonical. Conversely,
  484. the presence of a formatting tag also indicates that the mapping is a
  485. compatibility mapping and not a canonical mapping. In the absence of other
  486. formatting information in a compatibility mapping, the tag is used to
  487. distinguish it from canonical mappings.</p>
  488. <p>In some instances a canonical mapping or a compatibility mapping may consist
  489. of a single character. For a canonical mapping, this indicates that the
  490. character is a canonical equivalent of another single character. For a
  491. compatibility mapping, this indicates that the character is a compatibility
  492. equivalent of another single character. The compatibility formatting tags used
  493. are:</p>
  494. <table border="0" cellspacing="2" cellpadding="0">
  495. <tr>
  496. <th>Tag</th>
  497. <th>
  498. <p align="LEFT">Description</th>
  499. </tr>
  500. <tr>
  501. <td align="CENTER">&lt;font&gt;&nbsp;&nbsp;</td>
  502. <td>A font variant (e.g. a blackletter form).</td>
  503. </tr>
  504. <tr>
  505. <td align="CENTER">&lt;noBreak&gt;&nbsp;&nbsp;</td>
  506. <td>A no-break version of a space or hyphen.</td>
  507. </tr>
  508. <tr>
  509. <td align="CENTER">&lt;initial&gt;&nbsp;&nbsp;</td>
  510. <td>An initial presentation form (Arabic).</td>
  511. </tr>
  512. <tr>
  513. <td align="CENTER">&lt;medial&gt;&nbsp;&nbsp;</td>
  514. <td>A medial presentation form (Arabic).</td>
  515. </tr>
  516. <tr>
  517. <td align="CENTER">&lt;final&gt;&nbsp;&nbsp;</td>
  518. <td>A final presentation form (Arabic).</td>
  519. </tr>
  520. <tr>
  521. <td align="CENTER">&lt;isolated&gt;&nbsp;&nbsp;</td>
  522. <td>An isolated presentation form (Arabic).</td>
  523. </tr>
  524. <tr>
  525. <td align="CENTER">&lt;circle&gt;&nbsp;&nbsp;</td>
  526. <td>An encircled form.</td>
  527. </tr>
  528. <tr>
  529. <td align="CENTER">&lt;super&gt;&nbsp;&nbsp;</td>
  530. <td>A superscript form.</td>
  531. </tr>
  532. <tr>
  533. <td align="CENTER">&lt;sub&gt;&nbsp;&nbsp;</td>
  534. <td>A subscript form.</td>
  535. </tr>
  536. <tr>
  537. <td align="CENTER">&lt;vertical&gt;&nbsp;&nbsp;</td>
  538. <td>A vertical layout presentation form.</td>
  539. </tr>
  540. <tr>
  541. <td align="CENTER">&lt;wide&gt;&nbsp;&nbsp;</td>
  542. <td>A wide (or zenkaku) compatibility character.</td>
  543. </tr>
  544. <tr>
  545. <td align="CENTER">&lt;narrow&gt;&nbsp;&nbsp;</td>
  546. <td>A narrow (or hankaku) compatibility character.</td>
  547. </tr>
  548. <tr>
  549. <td align="CENTER">&lt;small&gt;&nbsp;&nbsp;</td>
  550. <td>A small variant form (CNS compatibility).</td>
  551. </tr>
  552. <tr>
  553. <td align="CENTER">&lt;square&gt;&nbsp;&nbsp;</td>
  554. <td>A CJK squared font variant.</td>
  555. </tr>
  556. <tr>
  557. <td align="CENTER">&lt;fraction&gt;&nbsp;&nbsp;</td>
  558. <td>A vulgar fraction form.</td>
  559. </tr>
  560. <tr>
  561. <td align="CENTER">&lt;compat&gt;&nbsp;&nbsp;</td>
  562. <td>Otherwise unspecified compatibility character.</td>
  563. </tr>
  564. </table>
  565. <p><b>Reminder: </b>There is a difference between decomposition and
  566. decomposition mapping. The decomposition mappings are defined in the UnicodeData,
  567. while the decomposition (also termed &quot;full decomposition&quot;) is defined
  568. in Chapter 3 to use those mappings <i>recursively.</i>
  569. <ul>
  570. <li>The canonical decomposition is formed by recursively applying the
  571. canonical mappings, then applying the canonical reordering algorithm.</li>
  572. <li>The compatibility decomposition is formed by recursively applying the
  573. canonical <em>and</em> compatibility mappings, then applying the canonical
  574. reordering algorithm.</li>
  575. </ul>
  576. <h3><a name="Canonical Combining Classes"></a>Canonical Combining Classes</h3>
  577. <table border="0" cellspacing="2" cellpadding="0">
  578. <tr>
  579. <th>
  580. <p align="LEFT">Value</th>
  581. <th>
  582. <p align="LEFT">Description</th>
  583. </tr>
  584. <tr>
  585. <td align="RIGHT">0:</td>
  586. <td>Spacing, split, enclosing, reordrant, and Tibetan subjoined</td>
  587. </tr>
  588. <tr>
  589. <td align="RIGHT">1:</td>
  590. <td>Overlays and interior</td>
  591. </tr>
  592. <tr>
  593. <td align="RIGHT">7:</td>
  594. <td>Nuktas</td>
  595. </tr>
  596. <tr>
  597. <td align="RIGHT">8:</td>
  598. <td>Hiragana/Katakana voicing marks</td>
  599. </tr>
  600. <tr>
  601. <td align="RIGHT">9:</td>
  602. <td>Viramas</td>
  603. </tr>
  604. <tr>
  605. <td align="RIGHT">10:</td>
  606. <td>Start of fixed position classes</td>
  607. </tr>
  608. <tr>
  609. <td align="RIGHT">199:</td>
  610. <td>End of fixed position classes</td>
  611. </tr>
  612. <tr>
  613. <td align="RIGHT">200:</td>
  614. <td>Below left attached</td>
  615. </tr>
  616. <tr>
  617. <td align="RIGHT">202:</td>
  618. <td>Below attached</td>
  619. </tr>
  620. <tr>
  621. <td align="RIGHT">204:</td>
  622. <td>Below right attached</td>
  623. </tr>
  624. <tr>
  625. <td align="RIGHT">208:</td>
  626. <td>Left attached (reordrant around single base character)</td>
  627. </tr>
  628. <tr>
  629. <td align="RIGHT">210:</td>
  630. <td>Right attached</td>
  631. </tr>
  632. <tr>
  633. <td align="RIGHT">212:</td>
  634. <td>Above left attached</td>
  635. </tr>
  636. <tr>
  637. <td align="RIGHT">214:</td>
  638. <td>Above attached</td>
  639. </tr>
  640. <tr>
  641. <td align="RIGHT">216:</td>
  642. <td>Above right attached</td>
  643. </tr>
  644. <tr>
  645. <td align="RIGHT">218:</td>
  646. <td>Below left</td>
  647. </tr>
  648. <tr>
  649. <td align="RIGHT">220:</td>
  650. <td>Below</td>
  651. </tr>
  652. <tr>
  653. <td align="RIGHT">222:</td>
  654. <td>Below right</td>
  655. </tr>
  656. <tr>
  657. <td align="RIGHT">224:</td>
  658. <td>Left (reordrant around single base character)</td>
  659. </tr>
  660. <tr>
  661. <td align="RIGHT">226:</td>
  662. <td>Right</td>
  663. </tr>
  664. <tr>
  665. <td align="RIGHT">228:</td>
  666. <td>Above left</td>
  667. </tr>
  668. <tr>
  669. <td align="RIGHT">230:</td>
  670. <td>Above</td>
  671. </tr>
  672. <tr>
  673. <td align="RIGHT">232:</td>
  674. <td>Above right</td>
  675. </tr>
  676. <tr>
  677. <td align="RIGHT">233:</td>
  678. <td>Double below</td>
  679. </tr>
  680. <tr>
  681. <td align="RIGHT">234:</td>
  682. <td>Double above</td>
  683. </tr>
  684. <tr>
  685. <td align="RIGHT">240:</td>
  686. <td>Below (iota subscript)</td>
  687. </tr>
  688. </table>
  689. <p><strong>Note: </strong>some of the combining classes in this list do not
  690. currently have members but are specified here for completeness.</p>
  691. <h3><a name="Decompositions and Normalization"></a>Decompositions and
  692. Normalization</h3>
  693. <p>Decomposition is specified in Chapter 3. <a
  694. href="http://www.unicode.org/unicode/reports/tr15/"><i>Unicode Standard Annex
  695. #15: Unicode Normalization Forms</i></a> specifies the interaction between decomposition
  696. and normalization. The most up-to-date version is found on <a
  697. href="http://www.unicode.org/unicode/reports/tr15/">http://www.unicode.org/unicode/reports/tr15/</a>.
  698. That report specifies how the decompositions defined in UnicodeData.txt are used
  699. to derive normalized forms of Unicode text.</p>
  700. <p>Note that as of the 2.1.9 update of the Unicode Character Database, the
  701. decompositions in the UnicodeData.txt file can be used to recursively derive the
  702. full decomposition in canonical order, without the need to separately apply
  703. canonical reordering. However, canonical reordering of combining character
  704. sequences must still be applied in decomposition when normalizing source text
  705. which contains any combining marks.</p>
  706. <h3><a name="Case Mappings"></a>Case Mappings</h3>
  707. <p>The case mapping is an informative, default mapping. Case itself, on the
  708. other hand, has normative status. Thus, for example, 0041 LATIN CAPITAL LETTER A
  709. is normatively uppercase, but its lowercase mapping the 0061 LATIN SMALL LETTER
  710. A is informative. The reason for this is that case can be considered to be an
  711. inherent property of a particular character (and is usually, but not always,
  712. derivable from the presence of the terms &quot;CAPITAL&quot; or
  713. &quot;SMALL&quot; in the character name), but case mappings between characters
  714. are occasionally influenced by local conventions. For example, certain
  715. languages, such as Turkish, German, French, or Greek may have small deviations
  716. from the default mappings listed in UnicodeData.</p>
  717. <p>In addition to uppercase and lowercase, because of the inclusion of certain
  718. composite characters for compatibility, such as 01F1 LATIN CAPITAL LETTER DZ,
  719. there is a third case, called <i>titlecase</i>, which is used where the first
  720. letter of a word is to be capitalized (e.g. UPPERCASE, Titlecase, lowercase). An
  721. example of such a titlecase letter is 01F2 LATIN CAPITAL LETTER D WITH SMALL
  722. LETTER Z.</p>
  723. <p>The uppercase, titlecase and lowercase fields are only included for
  724. characters that have a single corresponding character of that type. Composite
  725. characters (such as &quot;339D SQUARE CM&quot;) that do not have a single
  726. corresponding character of that type can be cased by decomposition.</p>
  727. <p>For compatibility with existing parsers, UnicodeData only contains case
  728. mappings for characters where they are one-to-one mappings; it also omits
  729. information about context-sensitive case mappings. Information about these
  730. special cases can be found in a separate data file, <a
  731. href="http://www.unicode.org/Public/3.0-Update1/">SpecialCasing.txt</a>, which
  732. has been added starting with the 2.1.8 update to the Unicode data files.
  733. SpecialCasing.txt contains additional informative case mappings that are either
  734. not one-to-one or which are context-sensitive.</p>
  735. <h2><a name="Property Invariants"></a>Property Invariants</h2>
  736. <p>Values in UnicodeData.txt are subject to correction as errors are found;
  737. however, some characteristics of the categories themselves can be considered
  738. invariants. Applications may wish to take these invariants into account when
  739. choosing how to implement character properties. The following is a partial list
  740. of known invariants for the Unicode Character Database.</p>
  741. <h4>Database Fields</h4>
  742. <ul>
  743. <li>The number of fields in UnicodeData.txt is fixed.</li>
  744. <li>The order of the fields is also fixed.
  745. <ul>
  746. <li>Any additional information about character properties to be added in
  747. the future will appear in separate data tables, rather than being added
  748. on to the existing table or by subdivision or reinterpretation of
  749. existing fields.</li>
  750. </ul>
  751. </li>
  752. </ul>
  753. <h4>General Category</h4>
  754. <ul>
  755. <li>There will never be more than 32 General Category values.
  756. <ul>
  757. <li>It is very unlikely that the Unicode Technical Committee will
  758. subdivide the General Category partition any further, since that can
  759. cause implementations to misbehave. Because the General Category is
  760. limited to 32 values, 5 bits can be used to represent the information,
  761. and a 32-bit integer can be used as a bitmask to represent arbitrary
  762. sets of categories.</li>
  763. </ul>
  764. </li>
  765. </ul>
  766. <h4>Combining Classes</h4>
  767. <ul>
  768. <li>Combining classes are limited to the values 0 to 255.
  769. <ul>
  770. <li>In practice, there are far fewer than 256 values used. Implementations
  771. may take advantage of this fact for compression, since only the ordering
  772. of the non-zero values matters for the Canonical Reordering Algorithm.
  773. It is possible for up to 256 values to be used in the future; however,
  774. UTC decisions in the future may restrict the number of values to 128,
  775. since this has implementation advantages. [Signed bytes can be used
  776. without widening to ints in Java, for example.]</li>
  777. </ul>
  778. </li>
  779. <li>All characters other than those of General Category M* have the combining
  780. class 0.
  781. <ul>
  782. <li>Currently, all characters other than those of General Category Mn have
  783. the value 0. However, some characters of General Category Me or Mc may
  784. be given non-zero values in the future.</li>
  785. <li>The precise values above the value 0 are not invariant--only the
  786. relative ordering is considered normative. For example, it is not
  787. guaranteed in future versions that the class of U+05B4 will be precisely
  788. 14.</li>
  789. </ul>
  790. </li>
  791. </ul>
  792. <h4>Case</h4>
  793. <ul>
  794. <li>Characters of type Lu, Lt, or Ll are called <i>cased</i>. All characters
  795. with an Upper, Lower, or Titlecase mapping are cased characters.
  796. <ul>
  797. <li>However, characters with the General Categories of Lu, Ll, or Lt may
  798. not always have case mappings, and case mappings may vary by locale.
  799. (See http://www.unicode.org/Public/UNIDATA/SpecialCasing.txt).</li>
  800. </ul>
  801. </li>
  802. </ul>
  803. <h4>Canonical Decomposition</h4>
  804. <ul>
  805. <li>Canonical mappings are always in canonical order.</li>
  806. <li>Canonical mappings have only the first of a pair possibly further
  807. decomposing.</li>
  808. <li>Canonical decompositions are &quot;transparent&quot; to other character
  809. data:
  810. <ul>
  811. <li><tt>BIDI(a) = BIDI(principal(canonicalDecomposition(a))</tt></li>
  812. <li><tt>Category(a) = Category(principal(canonicalDecomposition(a))</tt></li>
  813. <li><tt>CombiningClass(a) =
  814. CombiningClass(principal(canonicalDecomposition(a))</tt><br>
  815. where principal(a) is the first character not of type Mn, or the first
  816. character if all characters are of type Mn.</li>
  817. </ul>
  818. </li>
  819. <li>However, because there are sometimes missing case pairs, and because of
  820. some legacy characters, it is only generally true that:
  821. <ul>
  822. <li><tt>upper(canonicalDecomposition(a)) = canonicalDecomposition(upper(a))</tt></li>
  823. <li><tt>lower(canonicalDecomposition(a)) = canonicalDecomposition(lower(a))</tt></li>
  824. <li><tt>title(canonicalDecomposition(a)) = canonicalDecomposition(title(a))</tt></li>
  825. </ul>
  826. </li>
  827. </ul>
  828. <h2><a name="Modification History"></a>Modification History</h2>
  829. <p>This section provides a summary of the changes between update versions of the
  830. Unicode Standard.</p>
  831. <h3><a
  832. href="http://www.unicode.org/unicode/standard/versions/enumeratedversions.html#Unicode 3.0.1">Unicode
  833. 3.0.1</a></h3>
  834. <p>Modifications made for Version 3.0.1 of UnicodeData.txt include:
  835. <ul>
  836. <li>Added 5- and 6-digit representation of code points past U+FFFF.</li>
  837. <li>Added Private Use range definitions for Planes 15 and 16.</li>
  838. <li>Minor additions for the 10646 comment field.</li>
  839. </ul>
  840. <h3><a
  841. href="http://www.unicode.org/unicode/standard/versions/enumeratedversions.html#Unicode 3.0.0">Unicode
  842. 3.0.0</a></h3>
  843. <p>Modifications made for Version 3.0.0 of UnicodeData.txt include many new
  844. characters and a number of property changes. These are summarized in Appendex D
  845. of <em>The Unicode Standard, Version 3.0.</em></p>
  846. <h3><a
  847. href="http://www.unicode.org/unicode/standard/versions/enumeratedversions.html#Unicode 2.1.9">Unicode
  848. 2.1.9</a></h3>
  849. <p>Modifications made for Version 2.1.9 of UnicodeData.txt include:
  850. <ul>
  851. <li>Corrected combining class for U+05AE HEBREW ACCENT ZINOR.</li>
  852. <li>Corrected combining class for U+20E1 COMBINING LEFT RIGHT ARROW ABOVE</li>
  853. <li>Corrected combining class for U+0F35 and U+0F37 to 220.</li>
  854. <li>Corrected combining class for U+0F71 to 129.</li>
  855. <li>Added a decomposition for U+0F0C TIBETAN MARK DELIMITER TSHEG BSTAR.</li>
  856. <li>Added&nbsp; decompositions for several Greek symbol letters:
  857. U+03D0..U+03D2, U+03D5, U+03D6, U+03F0..U+03F2.</li>
  858. <li>Removed&nbsp; decompositions from the conjoining jamo block:
  859. U+1100..U+11F8.</li>
  860. <li>Changes to decomposition mappings for some Tibetan vowels for consistency
  861. in normalization. (U+0F71, U+0F73, U+0F77, U+0F79, U+0F81)</li>
  862. <li>Updated the decomposition mappings for several Vietnamese characters with
  863. two diacritics (U+1EAC, U+1EAD, U+1EB6, U+1EB7, U+1EC6, U+1EC7, U+1ED8,
  864. U+1ED9), so that the recursive decomposition can be generated directly in
  865. canonically reordered form (not a normative change).</li>
  866. <li>Updated the decomposition mappings for several Arabic compatibility
  867. characters involving shadda (U+FC5E..U+FC62, U+FCF2..U+FCF4), and two Latin
  868. characters (U+1E1C, U+1E1D), so that the decompositions are generated
  869. directly in canonically reordered form (not a normative change).</li>
  870. <li>Changed BIDI category for: U+00A0 NO-BREAK SPACE, U+2007 FIGURE SPACE,
  871. U+2028 LINE SEPARATOR.</li>
  872. <li>Changed BIDI category for extenders of General Category Lm: U+3005,
  873. U+3021..U+3035, U+FF9E, U+FF9F.</li>
  874. <li>Changed General Category and BIDI category for the Greek numeral signs:
  875. U+0374, U+0375.</li>
  876. <li>Corrected General Category for U+FFE8 HALFWIDTH FORMS LIGHT VERTICAL.</li>
  877. <li>Added Unicode 1.0 names for many Tibetan characters (informative).</li>
  878. </ul>
  879. <h3><a
  880. href="http://www.unicode.org/unicode/standard/versions/enumeratedversions.html#Unicode 2.1.8">Unicode
  881. 2.1.8</a></h3>
  882. <p>Modifications made for Version 2.1.8 of UnicodeData.txt include:
  883. <ul>
  884. <li>Added combining class 240 for U+0345 COMBINING GREEK YPOGEGRAMMENI so that
  885. decompositions involving iota subscript are derivable directly in
  886. canonically reordered form; this also has a bearing on simplification of
  887. casing of polytonic Greek.</li>
  888. <li>Changes in decompositions related to Greek tonos. These result from the
  889. clarification that monotonic Greek &quot;tonos&quot; should be equated with
  890. U+0301 COMBINING ACUTE, rather than with U+030D COMBINING VERTICAL LINE
  891. ABOVE. (All Greek characters in the Greek block involving &quot;tonos&quot;;
  892. some Greek characters in the polytonic Greek in the 1FXX block.)</li>
  893. <li>Changed decompositions involving dialytika tonos. (U+0390, U+03B0)</li>
  894. <li>Changed ternary decompositions to binary. (U+0CCB, U+FB2C, U+FB2D) These
  895. changes simplify normalization.</li>
  896. <li>Removed canonical decomposition for Latin Candrabindu. (U+0310)</li>
  897. <li>Corrected error in canonical decomposition for U+1FF4.</li>
  898. <li>Added compatibility decompositions to clarify collation tables. (U+2100,
  899. U+2101, U+2105, U+2106, U+1E9A)</li>
  900. <li>A series of general category changes to assist the convergence of of
  901. Unicode definition of identifier with ISO TR 10176:
  902. <ul>
  903. <li>So &gt; Lo: U+0950, U+0AD0, U+0F00, U+0F88..U+0F8B</li>
  904. <li>Po &gt; Lo: U+0E2F, U+0EAF, U+3006</li>
  905. <li>Lm &gt; Sk: U+309B, U+309C</li>
  906. <li>Po &gt; Pc: U+30FB, U+FF65</li>
  907. <li>Ps/Pe &gt; Mn: U+0F3E, U+0F3F</li>
  908. </ul>
  909. </li>
  910. <li>A series of bidi property changes for consistency.
  911. <ul>
  912. <li>L &gt; ET: U+09F2, U+09F3</li>
  913. <li>ON &gt; L: U+3007</li>
  914. <li>L &gt; ON: U+0F3A..U+0F3D, U+037E, U+0387</li>
  915. </ul>
  916. </li>
  917. <li>Add case mapping: U+01A6 &lt;-&gt; U+0280</li>
  918. <li>Updated symmetric swapping value for guillemets: U+00AB, U+00BB, U+2039,
  919. U+203A.</li>
  920. <li>Changes to combining class values. Most Indic fixed position class
  921. non-spacing marks were changed to combining class 0. This fixes some
  922. inconsistencies in how canonical reordering would apply to Indic scripts,
  923. including Tibetan. Indic interacting top/bottom fixed position classes were
  924. merged into single (non-zero) classes as part of this change. Tibetan
  925. subjoined consonants are changed from combining class 6 to combining class
  926. 0. Thai pinthu (U+0E3A) moved to combining class 9. Moved two Devanagari
  927. stress marks into generic above and below combining classes (U+0951,
  928. U+0952).</li>
  929. <li>Corrected placement of semicolon near symmetric swapping field. (U+FA0E,
  930. etc., scattered positions to U+FA29)</li>
  931. </ul>
  932. <h3>Version 2.1.7</h3>
  933. <p><i>This version was for internal change tracking only, and never publicly
  934. released.</i></p>
  935. <h3>Version 2.1.6</h3>
  936. <p><i>This version was for internal change tracking only, and never publicly
  937. released.</i></p>
  938. <h3><a
  939. href="http://www.unicode.org/unicode/standard/versions/enumeratedversions.html#Unicode 2.1.5">Unicode
  940. 2.1.5</a></h3>
  941. <p>Modifications made for Version 2.1.5 of UnicodeData.txt include:
  942. <ul>
  943. <li>Changed decomposition for U+FF9E and U+FF9F so that correct collation
  944. weighting will automatically result from the canonical equivalences.</li>
  945. <li>Removed canonical decompositions for U+04D4, U+04D5, U+04D8, U+04D9,
  946. U+04E0, U+04E1, U+04E8, U+04E9 (the implication being that no canonical
  947. equivalence is claimed between these 8 characters and similar Latin
  948. letters), and updated 4 canonical decompositions for U+04DB, U+04DC, U+04EA,
  949. U+04EB to reflect the implied difference in the base character.</li>
  950. <li>Added Pi, and Pf categories and assigned the relevant quotation marks to
  951. those categories, based on the Unicode Technical Corrigendum on Quotation
  952. Characters.</li>
  953. <li>Updating of many bidi properties, following the advice of the ad hoc
  954. committee on bidi, and to make the bidi properties of compatibility
  955. characters more consistent.</li>
  956. <li>Changed category of several Tibetan characters: U+0F3E, U+0F3F,
  957. U+0F88..U+0F8B to make them non-combining, reflecting the combined opinion
  958. of Tibetan experts.</li>
  959. <li>Added case mapping for U+03F2.</li>
  960. <li>Corrected case mapping for U+0275.</li>
  961. <li>Added titlecase mappings for U+03D0, U+03D1, U+03D5, U+03D6, U+03F0..
  962. U+03F2.</li>
  963. <li>Corrected compatibility label for U+2121.</li>
  964. <li>Add specific entries for all the CJK compatibility ideographs,
  965. U+F900..U+FA2D, so the canonical decomposition for each (the URO character
  966. it is equivalent to) can be carried in the database.</li>
  967. </ul>
  968. <h3>Version 2.1.4</h3>
  969. <p><i>This version was for internal change tracking only, and never publicly
  970. released.</i></p>
  971. <h3>Version 2.1.3</h3>
  972. <p><i>This version was for internal change tracking only, and never publicly
  973. released.</i></p>
  974. <h3><a
  975. href="http://www.unicode.org/unicode/standard/versions/enumeratedversions.html#Unicode 2.1.2">Unicode
  976. 2.1.2</a></h3>
  977. <p>Modifications made in updating UnicodeData.txt to Version 2.1.2 for the
  978. Unicode Standard, Version 2.1 (from Version 2.0) include:
  979. <ul>
  980. <li>Added two characters (U+20AC and U+FFFC).</li>
  981. <li>Amended bidi properties for U+0026, U+002E, U+0040, U+2007.</li>
  982. <li>Corrected case mappings for U+018E, U+019F, U+01DD, U+0258, U+0275,
  983. U+03C2, U+1E9B.</li>
  984. <li>Changed combining order class for U+0F71.</li>
  985. <li>Corrected canonical decompositions for U+0F73, U+1FBE.</li>
  986. <li>Changed decomposition for U+FB1F from compatibility to canonical.</li>
  987. <li>Added compatibility decompositions for U+FBE8, U+FBE9, U+FBF9..U+FBFB.</li>
  988. <li>Corrected compatibility decompositions for U+2469, U+246A, U+3358.</li>
  989. </ul>
  990. <h3>Version 2.1.1</h3>
  991. <p><i>This version was for internal change tracking only, and never publicly
  992. released.</i></p>
  993. <h3><a
  994. href="http://www.unicode.org/unicode/standard/versions/enumeratedversions.html#Unicode 2.0.0">Unicode
  995. 2.0.0</a></h3>
  996. <p>The modifications made in updating UnicodeData.txt for the Unicode Standard,
  997. Version 2.0 include:
  998. <ul>
  999. <li>Fixed decompositions with TONOS to use correct NSM: 030D.</li>
  1000. <li>Removed old Hangul Syllables; mapping to new characters are in a separate
  1001. table.</li>
  1002. <li>Marked compatibility decompositions with additional tags.</li>
  1003. <li>Changed old tag names for clarity.</li>
  1004. <li>Revision of decompositions to use first-level decomposition, instead of
  1005. maximal decomposition.</li>
  1006. <li>Correction of all known errors in decompositions from earlier versions.</li>
  1007. <li>Added control code names (as old Unicode names).</li>
  1008. <li>Added Hangul Jamo decompositions.</li>
  1009. <li>Added Number category to match properties list in book.</li>
  1010. <li>Fixed categories of Koranic Arabic marks.</li>
  1011. <li>Fixed categories of precomposed characters to match decomposition where
  1012. possible.</li>
  1013. <li>Added Hebrew cantillation marks and the Tibetan script.</li>
  1014. <li>Added place holders for ranges such as CJK Ideographic Area and the
  1015. Private Use Area.</li>
  1016. <li>Added categories Me, Sk, Pc, Nl, Cs, Cf, and rectified a number of
  1017. mistakes in the database.</li>
  1018. </ul>
  1019. </body>
  1020. </html>