pgsql: Be more careful about extracting encoding from locale strings on
От | Tom Lane |
---|---|
Тема | pgsql: Be more careful about extracting encoding from locale strings on |
Дата | |
Msg-id | E1jIw8E-0001mr-MM@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Be more careful about extracting encoding from locale strings on Windows. GetLocaleInfoEx() can fail on strings that setlocale() was perfectly happy with. A common way for that to happen is if the locale string is actually a Unix-style string, say "et_EE.UTF-8". In that case, what's after the dot is an encoding name, not a Windows codepage number; blindly treating it as a codepage number led to failure, with a fairly silly error message. Hence, check to see if what's after the dot is all digits, and if not, treat it as a literal encoding name rather than a codepage number. This will do the right thing with many Unix-style locale strings, and produce a more sensible error message otherwise. Somewhat independently of that, treat a zero (CP_ACP) result from GetLocaleInfoEx() as meaning that we must use UTF-8 encoding. Back-patch to all supported branches. Juan José Santamaría Flecha Discussion: https://postgr.es/m/24905.1585445371@sss.pgh.pa.us Branch ------ REL9_6_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/f15f5edee5b40812b5ac3e4cf431a507a4991b5e Modified Files -------------- src/port/chklocale.c | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-)
В списке pgsql-committers по дате отправления: