The Case Against Autodecode

Chris via Digitalmars-d digitalmars-d at puremagic.com
Fri May 27 07:15:29 PDT 2016


On Friday, 27 May 2016 at 13:47:32 UTC, ag0aep6g wrote:
>> Misunderstanding. All examples work properly today because of
>> autodecoding. -- Andrei
>
> They only work "properly" if you define "properly" as "in terms 
> of code points". But working in terms of code points is usually 
> wrong. If you want to count "characters", you need to work with 
> graphemes.
>
> https://dpaste.dzfl.pl/817dec505fd2

I agree. It has happened to me that characters like "é" return 
length == 2, which has been the cause of some bugs in my code. 
I'm wiser now, of course, but you wouldn't expect this, if you 
write

if (input.length == 1)
   speakCharacter(input);  // e.g. when spelling a word
else
   processInput(input);

The worst thing is that you never know, what's going on under the 
hood and where autodecode slows you down, unbeknownst to yourself.




More information about the Digitalmars-d mailing list