Mysql кодиране и krakozyably

Това искане е необходимо да се провери в сценария, но не и в PhpMyAdmin, където могат да се задават други параметри

  1. character_set_client - кодиране, в които данните ще бъдат получени от клиента
  2. character_set_connection - по подразбиране за всичко в рамките на съединението е без кодиране
  3. character_set_database - кодировка по подразбиране за базата данни
  4. character_set_filesystem - кодиране за файловата система (LOAD DATA INFILE, изберете ... В OUTFILE, и т.н.)
  5. character_set_results - кодиране, в които ще бъдат избрани в резултат
  6. character_set_server - кодиране, в които сървърът работи
  7. character_set_system - MySQL идентификатори винаги UTF8
  8. character_sets_dir - папка с кодировки

По подразбиране, след като инсталирате MySQL сървър, който е инсталиран мързелив общежитие \ администратор е кодиран latin1. Съответно, глобалните променливи, изброени по-горе, ще бъдат в latin1. Базата по подразбиране, съответно, както и таблица, както добре. И това е, което трябва да се обърне в началото да се обърне внимание на проблеми, които не се появиха по-късно.

В идеалния случай, трябва да носим всички маркирани цветово кодиране на една стойност. Тогава ние просто ще бъдат пощадени от малки грешки с кодиране. Всъщност, ако ние работим с хостинг, след това (3) и (6) можем да не окаже влияние. Но това не е страшно, ако конфигурирате другите три параметри. Mysql Umet прекодиране в движение, ако е конфигурирана правилно кодиране връзка.

И накрая, основният въпрос е какво да се прави, ако един от MySQL таблици (или повече) в грешната voprosiki кодиране и уебсайт вижда krakozyably \?

1. Определяне на таблицата за кодиране.

MySQL> Покажи CREATE TABLE `files`

Създаване на таблица `files` (

`Id` междинно съединение (10) неподписан НЕ NULL auto_increment.

`INode` междинно съединение (10) неподписан НЕ NULL.

`Pid` междинно съединение (10) неподписан НЕ NULL.

`SName` VARCHAR (128) набор от символи latin1 съпоставя latin1_general_ci НЕ NULL.

`STitle` VARCHAR (128) набор от символи utf8 съпоставя utf8_general_ci НЕ NULL.

Първичен ключ ( `id`).

KEY `iNode` (` iNode`)

) ДВИГАТЕЛ = MyISAM DEFAULT CHARSET = utf8

В тази таблица поле SNAME кодиран latin1, ако имаме връзката по различен кодиране, ще видим безсмислици.

2. Ето защо, ние следващия разгледа кодиране съединение, SQL заявка Автор на променливи, като например "character_set_client". Имайте предвид, че функцията на PHP mysqli_client_encoding (). Ние няма да работи, тъй като тя показва само кодирането по време на връзката.

3. Ако кодиране съединението не е съвпада с кодирането на една от областите на таблицата, двата очевидни избор.
Ако имаме всички маси в едно кодиране, е по-лесно да се промени кодировката на връзката.
Но как да се определи областта неправилно кодиране маса?
За да изпълни това искане, 2