Re: utf-8 character is displayed badly in GPA interface (Win32)
Werner Koch <[email protected]> Wed, 02 May 2007 19:30:51 +0200
| Newsgroups | gmane.comp.encryption.gpg.gpa.devel |
|---|---|
| Message-ID | <[email protected]> |
On Wed, 2 May 2007 14:32, [email protected] said: > Is there a problem with the GPA ? Yes, it is due to this simple heuristics: /* Make sure the encoding is UTF-8. Test structure suggested by Werner Koch. */ for (s = string; *s && !(*s & 0x80); s++) ; if (*s && !strchr (string, 0xc3)) { /* The string is Latin-1. */ return g_convert (string, -1, "UTF-8", "ISO-8859-1", NULL, NULL, NULL); } else { /* The string is already in UTF-8. */ return g_strdup (string); } Obviously this is not correct. Your name is correctly utf-8 encoded as "Cristian Secar\xc4\x83". The above code will falsely assume that this is Latin-1 one and converts the string to utf-8. The code works for the French an German characters but obviously not tested with other character sets. The hack is required because PGP has a long standing bug which did not do any conversion and stored names verbatim. Most systems at that time used Latin-1 so German and other folks got their Umlauts (e.g. Müller) wrong. The problem is that an utf-8 strings may also be a valid Latin-1 string. Most names would look strange, though. I will change the test to take the continuation bytes in account. Shalom-Salam, Werner _______________________________________________ Gpa-dev mailing list [email protected] http://lists.gnupg.org/mailman/listinfo/gpa-dev