Re: Invalid byte sequence for encoding "UTF8", caused due to non wide-char-aware downcase_truncate_identifier() function on WINDOWS
| От | Robert Haas |
|---|---|
| Тема | Re: Invalid byte sequence for encoding "UTF8", caused due to non wide-char-aware downcase_truncate_identifier() function on WINDOWS |
| Дата | |
| Msg-id | BANLkTinP9XBcPuEK=7XPqh=NcOVFBKYDUw@mail.gmail.com обсуждение исходный текст |
| Ответ на | Re: Invalid byte sequence for encoding "UTF8", caused due to non wide-char-aware downcase_truncate_identifier() function on WINDOWS (Tom Lane <tgl@sss.pgh.pa.us>) |
| Ответы |
Re: Invalid byte sequence for encoding "UTF8", caused due to non wide-char-aware downcase_truncate_identifier() function on WINDOWS
|
| Список | pgsql-hackers |
On Thu, Jun 9, 2011 at 10:07 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Robert Haas <robertmhaas@gmail.com> writes: >> But now that I re-think about it, I guess what I'm confused about is >> this code here: > >> if (ch >= 'A' && ch <= 'Z') >> ch += 'a' - 'A'; >> else if (IS_HIGHBIT_SET(ch) && isupper(ch)) >> ch = tolower(ch); >> result[i] = (char) ch; > > The expected behavior there is that case-folding of non-ASCII characters > will occur in single-byte encodings but nothing will happen to > multi-byte characters. We are relying on isupper() to not return true > when presented with a character fragment in a multibyte locale. Based on Jeevan's original message, it seems like that's not always the case, at least on Windows. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: