In some words, written vowels change their form in order to join up with consonants.
- With ‘i’: ि – कि [ki] is a combination of क + इ (k + i). The character ि is added to the left and above.
There are about a dozen of these rules. This is the one that explains what is going on in the above example. When typing the Hindi word किताब ('book' in English) you press क then ि and the result is कि.
Reportlabs does not seem to know the rule, and prints क ि.
Back in the console:
>>> bytes('क', 'utf-8')
b'\xe0\xa4\x95'
>>> bytes('कि', 'utf-8')
b'\xe0\xa4\x95\xe0\xa4\xbf'
The character order shows the क first, and the ि second. So does the computer OS or other layer know the rules for Hindi and automatically change the characters? And reportlab does not take notice of this?
Is there a work around or I am unable to print Hindi in reportlab?