15. A non-transitory computer readable storage medium storing one or more programs configured for execution by a computing device having one or more processors and memory, the one or more programs comprising instructions for: receiving a first text string S=s 1 s 2 . . . s n having Unicode encoding and a second text string T=t 1 t 2 . . . t m having Unicode encoding, wherein n and m are positive integers, s 1 , s 2 , . . . , s n and t 1 , t 2 , . . . , t m are Unicode characters, and S is not identical to T; (1) identifying a positive integer p with s 1 =t 1 , s 2 =t 2 , . . . , s p−1 =t p−1 and s p ≠t p , wherein at least one of s p and t p is a non-ASCII character; (2) looking up the characters s p and t p in a predefined lookup table to determine a weight v p for the character s p and a weight w p for the character t p ; (3) when at least one of s p and t p is not found in the lookup table, determining the collation order of the strings S and T using Unicode weights for the corresponding strings s p s p+1 . . . s n and t p t p+1 . . . t m ; (4) when both s p and t p are found in the lookup table and v p <w p , determining that S is collated before T; (5) when both s p and t p are found in the lookup table and w p <v p , determining that T is collated before S; (6) when both s p and t p are found in the lookup table, v p =w p , and s p+1 . . . s n =t p+1 . . . t m , determining that S and T have the same collation position; and when both s p and t p are found in the lookup table, v p =w p , and s p+1 . . . s n ≠t p+1 . . . t m , determining the collation order of S and T recursively according to steps (1)-(6) using the suffix strings s p+1 . . . s n and t p+1 . . . t m .
16. The computer readable storage medium of claim 15 , wherein the lookup table includes lookup values for each non-control ASCII character plus a plurality of accented Roman characters.