很多語言,包括英語在內,都使用沉音字符(accented character)。因為這些字符不屬於 ASCII 字符集,所以假如不查看 Unicode 值也不使用 Unicode 編輯器並將其轉成一個已知字符集,就很難編寫使用這些字符的代碼。 Oracle9i 引入了 COMPOSE 函數,該函數接受一串 Unicode 字符並規則化其文本。這就意味著它可以接受一個字母和一個組合標記,比如說‘a'(Unicode 字符0097)和沉音符(Unicode 字符0300),然後創建一個單獨的由兩個標記組合而成的字符。COMPOSE 使用非凡的組合標記,而沒有使用 ASCII 中相應的音節標記,它所使用的非凡的組合標記是 Unicode 標准 的一部分。上面的例子的結果應該是 Unicode 字符00E0(有一個沉音符的小寫拉丁字母‘a')。 在 ANSI 中最常見的組合字符有: · U+0300:沉音符(grave accent)( ` )。 · U+0301:重音符(acute accent)( ' )。 · U+0302:抑揚音符號(circumflex accent)(^)。 · U+0303:颚化符號(tilde)(~)。 · U+0308:元音變音。 假如沒有非凡的軟件或者鍵盤驅動程序的話,很難在鍵盤上輸入 Unicode 字符0097和0300。因此,以純 ASCII 文本輸入 Unicode 序列的一個方法是使用 UNISTR 函數。這個函數接受一個 ASCII 字符串然後以國家字符集(通常作為16位 Unicode 或者 UTF-8 字符集安裝)創建一個 Unicode 字符的序列。它使用十六進制占位符序列映射任何非 ASCII 字符,映射方式與 Java 類似。 要輸入a後接一個沉音符組合字符的序列,可以使用 UNISTR(‘a