Reminder to self: in Turkey, they have more than just the lowercase i and uppercase I. In fact these are the i characters you can get:
Note there are more non-US latin characters in Turkey, see the links below for some lists.
The Turkish case conversion is inside the same group of dotted. The English case conversion is from dotted lowercase i to dotless uppercase I as shown in [WayBack] Internationalizing Turkish: Dotted and Dotless Turkish Letter “I”:
English vs. Turkish Case Mappings
Language |
Letter |
Lowercase
Map |
Uppercase
Map |
English |
i |
i |
I |
Turkish |
dotted i |
i |
İ |
Turkish |
dotless ı |
ı |
I |
In general, this problem is called [WayBack] Case Folding and many environments do not have good and ready to use solutions for this.
In my case, I was getting Field "id" not found
messages for all tables that had an ID field. The reason was that somewhere in the path from my code to the database, either a comparison or case conversion wasn’t taking into account the above mappings.
Though the underlying database indicates I shouldn’t in [WayBack] Do I have to use UPPERCASE identifiers?, it appears that something in the path from my code via IBX to the Firebird 2.5 database has issues on Turkish machines. The good thing: Database WorkBench 5.x doesn’t have that issue for a regular query.
Usually databases are only cases sensitive with quoted identifiers, but not all are: [WayBack] Lorenzo Alberton – Articles – Database identifiers, quoting and case sensitivity
Read the rest of this entry »
Like this:
Like Loading...