On Thursday, 6 September 2018 at 14:17:28 UTC, aliak wrote:
// D
auto a = "á";
auto b = "á";
auto c = "\u200B";
auto x = a ~ c ~ a;
auto y = b ~ c ~ b;
writeln(a.length); // 2 wtf
writeln(b.length); // 3 wtf
writeln(x.length); // 7 wtf
writeln(y.length); // 9 wtf
writeln(a == b); // false wtf
writeln("ááááááá".canFind("á")); // false wtf
I had to copy-paste that because I wondered how the last two can
be false. They are because á is encoded differently. if you
replace all occurences of it with a grapheme that fits to one
code point, the results are:
2
2
7
7
true
true