On Thursday, 13 October 2022 at 08:27:17 UTC, bauss wrote:
```d
bool isearch(S1, S2)(S1 haystack, S2 needle)
{
    import std.uni;
    import std.algorithm;
    return haystack.asLowerCase.canFind(needle.asLowerCase);
}
```

untested.

-Steve

This doesn't actually work properly in all languages. It will probably work in most, but it's not entirely correct.

Ex. Turkish will not work with it properly.

Very interesting article: http://www.moserware.com/2008/02/does-your-code-pass-turkey-test.html

Wow, I didn't expect anything like this and just thought that the nightmares of handling 8-bit codepages for non-English languages ceased to exist nowadays. Too bad. What are the best practices to deal with Turkish text in D language?

For example, [Ukrainian letters 'і' and 'І'](https://en.wikipedia.org/wiki/Dotted_I_(Cyrillic)) don't share the same codes with Latin 'i' and 'I' and this is working fine. Except for a possible [phishing opportunity](https://www.theguardian.com/technology/2017/apr/19/phishing-url-trick-hackers). Why haven't the standard committees done the same for Turkish 'I' yet?

As for the [German letter 'ß'](https://en.wikipedia.org/wiki/%C3%9F), wikipedia says that the uppercase variant 'ẞ' exists since 2008 (ISO 10646). Do German people use it now?
```D
import std;
void main() {
  "ß".asUpperCase.writeln;             // prints "SS"
  "ẞ".asLowerCase.writeln;             // prints "ß"
  "ẞ".asLowerCase.asUpperCase.writeln; // prints "SS"
}
```

Reply via email to