| Summary: | Сделать определённым определение кодировки клиента | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Vitaly Lipatov <lav> |
| Component: | MySQL-server | Assignee: | Anton Farygin <rider> |
| Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P2 | CC: | mike, nickel, rider, shaba, vvk |
| Version: | unstable | ||
| Hardware: | all | ||
| OS: | Linux | ||
| Bug Depends on: | 10370 | ||
| Bug Blocks: | 13909 | ||
MySQL-5.0.89-alt1 -> sisyphus: * Mon Jan 25 2010 Anton Farygin <rider@altlinux> 5.0.89-alt1 - new version (closes #18943) - fixed CVE-2009-2446 from upstream (closes #20724) - setup utf8 encoding instead of latin1 by default (closes #12390) - include C99 aliasing violation patch from mythtv (closes #22452) - removed username-length patch - wait for mysqld shutdown (closes #22234) - don't run initial setup mysql database if mysql.user table already exists |
Во избежание существующих ныне ситуаций, когда сервер выдаёт клиенту строки в latin1, а клиент думает что это кириллица, а при этом в базе кривые строки сохраняются, предлагаю хитрую логику в /etc/init.d/mysqld заменить или дополнить умолчанием: utf8. А вообще эквилибристики с определением кодировок для сервере по-моему вредны, и таких конструкций в современной системе быть не должно: default_charset="$(HOME=/var/empty . /etc/profile.d/lang.sh && locale | sed -ne 's/^LC_COLLATE="\?[^".]\+\.\([^"]\+\)"\?$/\1/p case "$default_charset" in CP1251) CHSET=cp1251 ;; KOI8-R) CHSET=koi8r ;; KOI8-U) CHSET=koi8u ;; UTF-8) CHSET=utf8 ;; *)