The transliteration of the pure consonants is derived from their usual pronunciation as an initial consonant. An unmarked h is used to form digraphs denoting aspirated consonants. High and low pairs of consonants are systematically differentiated by applying a macron to the high class consonant. Further differentiation of consonants with identical phonetic function is obtained by leaving the most frequent unmarked, marking the second commonest by a dot below, marking the third commonest by a horn, and marking the fourth commonest by underlining. The use of a dot below has a similar effect to the Indological practice of distinguishing retroflex consonants by a dot below, but there are subtle differences – it is the transliterations of ธ tho thong and ศ so sala that are dotted below, not those of the corresponding retroflex consonants. The transliterations of consonants should be entered in the order base letter, macron if any, and then dot below, horn or "macron below".
Only three consonants have the horn in their transliteration, ฅ kho khon, ฒ tho phuthao and ษ so ruesi, and only one consonant has an underline, ฑ tho nang montho.
The letter å is the only precomposed character specified in the output of transliteration.
Lakkhangyao (ๅ) has been shown only in combination with the vowel letters ฤ and ฦ. The standard simply lists ฤ and ฦ with the consonants and lakkhangyao with the vowels. An isolated lakkhangyao would also be transliterated by a small letter "i" with stroke (ɨ), but such should not occur in Thai, Pāli, or Sanskrit.
The transliterations of ว wo waen and อ o ang have been included here because of their use as complete vowel symbols, but their transliteration does not depend on how they are being used and the standard simply lists them with the consonants.
Compound vowel symbols are transliterated in accordance with their constituents.
Note that yamakkan (–๎) is represented by a spacing tilde, not a superscript tilde.
ISO 11940:1998 distinguishes the abbreviation symbol paiyannoi (ฯ) from the sentence terminator angkhandiao (ฯ), even though neither the national character standard TIS 620-2533 nor Unicode Version 5.0 distinguishes them. Paiyannoi is transliterated as ǂ and angkhandiao is transliterated as ǀ. Note that paiyannoi, angkhandiao and angkhankhu (๚) are transliterated by the letters used for click consonants, not by double dagger, vertical bars or dandas.
In general characters are transliterated from left to right and, where characters have the same horizontal position, from top to bottom. The vertical sequencing is in fact simply specified as tone marks and thanthakhat (–์) preceding any other marks above or below the consonant. The standard denies at the end of Section 4.2 that the combination of sara u (◌ุ, ◌ู) and nikkhahit (◌ํ) can occur and then gives an example of it when specifying the transliteration of nikkhahit, but does not show the transliteration of the combination. The effect of these rules is that, except for nikkhahit, all the non-vowel marks attached to a consonant in Thai are attached to the consonant in the Roman transliteration.
The standard concedes that attempting to transpose preposed vowels and consonants may be comforting to those used to the Roman alphabet, but recommends that preposed vowels not be transposed.
The standard specifies the order in which the accents should be typed, but not all input systems will record accents in the order in which they are typed. Unicode specifies two normalised forms for letters with multiple accents, and transliterated text is highly likely to be stored in one of these forms. This complicates automatic back-transliteration. As Unicode-compliant processes must handle such variations correctly, the transliterations on this page have been chosen for ease of display – present day rendering systems may display equivalent forms differently.
Many fonts display novel combinations of consonants and accents badly. For example, the Institute of the Estonian Language publishes an explanation of the application of the standard to Thai on the web, and with one exception this seems to be a comply with the standard. The exception is that, except for the macron, accents over consonants are actually offset to the right, giving the impression that they have been entered as the corresponding non-combining characters. The standard specifies the transliterations in code points, but someone working from this free explanation could easily deduce that the spacing forms of the tone accents should be used.
The ICU implementation, recorded in Version 1.4.1 of the Common Locale Data Repository sponsored by Unicode, uses a prime instead of a horn in the transliteration of consonants. This affects the transliteration of ฅ kho khon, ฒ tho phuthao and ษ so bo ruesi. ฏ to patak is also transliterated differently, as t̩ rather than ṭ.
This implementation transliterates ำ as ả instead of å to avoid ambiguity with the hypothetical Thai script sequence ะํ (sara a, nikkhahit). The ICU implementation transliterates ฺ phinthu as ˌinstead of to avoid problems with Unicode normalisation. This has the side effect of improving legibility when applied to an underdotted consonant.
The ICU implementation transliterates ฯ paiyannoi as ‡ (double dagger) and angkhankhu as || (two ASCII vertical bars). As the ICU implementation uses Unicode, it cannot reliably distinguish angkhandiao from paiyannoi without a semantic analysis, and makes no such attempt.
The character sequencing of the ICU implementation is different. It transposes preposed vowels with the following consonant, and processes the marks on a consonant in the order in which they are stored in memory. (Most Thai input methods ensure that the marks are stored in bottom to top order.) It does not transpose preposed vowels with complete consonant clusters; consonant clusters cannot be identified with complete accuracy, and transposing vowels with clusters would require an additional symbol to permit reliable conversion back to the Thai script.
For example, under this implementation ภาษาไทย transliterates to p̣hās̄ʹāthịy and เชียงใหม่ to cheīyngh̄ım̀.
Finally, this implementation generates transliterations in Unicode Normalisation Form C (NFC).