Ignoring accented characters

jbv at souslelogo.com jbv at souslelogo.com
Tue Sep 27 11:00:55 EDT 2022


Hello Ben,

Thank you for your detailed answer.

So far, I only have to deal with french text so I only need
a list of diacritic vowels and a list of the chars used as
replacement :
àâäéèêëîïôöùûüÿ
aaaeeeeiioouuuy
With a simple loop it is feasible and it doesn't slow down
my scripts significantly.
But indeed, a 'diacriticSensitive' property would be really
helpful.

jbv



Le 2022-09-27 06:22, Ben Rubinstein a écrit :
> Hi jbv,
> 
> This one of a number of gaps that exist in the jungle of character
> processing in LiveCode.
> 
> I don't think there is a 'diacriticSensitive' property. Some part of
> LiveCode are clever about accents, see e.g.
> https://quality.livecode.com/show_bug.cgi?id=15312
> https://quality.livecode.com/show_bug.cgi?id=15443
> 
> As you note, it would be useful if there was a built-in function to
> strip diacritics, which has been requested (for 14 years now):
> https://quality.livecode.com/show_bug.cgi?id=6450
> 
> One trick that can be used in some contexts is to put the text into a
> field, retrieve the htmlText of the fields - which encodes many
> accented characters as entity names - and reduce these entity names
> back to the unaccented character.
> 
> There's also an enhancement request (pending for over 18 years) to
> expose this functionality without the need to use a field - useful for
> many purposes, not just for stripping accents:
> https://quality.livecode.com/show_bug.cgi?id=1372
> 
> This especially ought to be a cheap enhancement, since LC evidently
> incorporates the necessary tables already.
> 
> Putting text through html entities is not a perfect solution to
> implementing a "stripDiacritics" function, because e.g. you might
> render "—" as "m"; but as far as I know, currently it's either
> that or encode your own tables.
> 
> Ben
> 
> 
> On 16/09/2022 15:10, jbv via use-livecode wrote:
>> Hi list,
>> 
>> Is there a way to ignore accented characters in LC, like in mySQL
>> for instance ?
>> Here's an example : I need these 2 array items below to be considered
>> as 1 single entity :
>>    add 1 to myArray["interprétation"]
>>    add 1 to myArray["interpretation"]
>> 
>> Of course, I can write a function that removes accents, but I was
>> wondering if there was a built-in function in LC to do that, in a
>> similar logic as "set the casesentive to false" for instance.
>> 
>> Thanks you in advance.
>> jbv
>> 
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your 
>> subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode



More information about the use-livecode mailing list