From: Sarah B. <sbe...@ta...> - 2016-02-03 17:47:11
|
Thank you Markus!! This totally worked!! From: Markus Scherer [mailto:mar...@gm...] Sent: Wednesday, January 27, 2016 2:28 PM To: ICU support mailing list <icu...@li...> Subject: Re: [icu-support] Collation rules error On Wed, Jan 27, 2016 at 1:39 PM, Sarah Berrier <sbe...@ta...<mailto:sbe...@ta...>> wrote: Thanks for all of your help so far!! I was pretty excited about the suggestion below Markus! Unfortunately &\u0000=*0-9 doesn’t seem to succeed in making the digits ignorable. If I try either of these rule strings: "&\\u0000='0'='1'='2'='3'='4'='5'='6'='7'='8'='9'" "&\\u0000=*0-9" And run: collator.Compare("a1bc", "abc") I get 1 as a return value. The collation rule parser does not unescape rules. In Java, don't double the backslash. In C++, find a way to get an actual character U+0000 in there. Modern C++ does support \u0000 in UTF-8 or UTF-16 string literals. If I try this rule strings "&'0'='1'='2'='3'='4'='5'='6'='7'='8'='9'=\\u0000" And run: collator.Compare("a1bc", "abc") I get -1 as a return value. That would be the opposite, making an igorable character non-ignorable, and equal to digit 0. Except that you are actually making the sequence \ u 0 0 0 0 sort like one digit 0. markus |