Re: Valid UTF-8 text mangled up in GtkLabel



On Fri, 5 Aug 2005, Gaurav Jain wrote:

> Hi,
>
> I'm trying to set the text in a GtkLabel to a UTF-8 string, which
> contains some arabic characters first, followed by my email address in
> angle brackets, followed by my name in round brackets.  For e.g., a
> sample value is:
>
> X <gaurav somewhere com> (Gaurav Jain)
>
> In the above, 'X' represents a valid sequence of arabic UTF-8
> characters.  The problem that I see is that when I run this program
> (appended to this mail), the output shown is something like this:
>
> (gaurav somewhere com> (Gaurav Jain> X
>
> Note that the angle and round brackets are all messed up, and that
> order of arabic and ascii words is also wrong.

Apparently our milages do vary ;).


> Does anyone know WHY this is happening?

Yes, because Arabic is written from right to left, unlike Latin.
And this behavior is part of the Unicode standard.

> Just for information, I'm using GTK 2.4.14.  Also,
> I was surprised to discover that this works fine with an older version
> of GTK (2.0.9).

Right.  Because /bidi/ was not implemented completely in that
version.  This specific part of bidi that is causing problems for
you is called automatic paragraph direction.

> Does something special need to be done so I can get
> it to work with GTK >= 2.4?

It /is/ working.  If you like to get the behavior similar to the
old one, you need ot insert a U+200E LEFT-TO-RIGHT MARK character
at the beginning of the buffer.


> Thanks,
> Gaurav

--behdad
http://behdad.org/



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]