de codificare și Mysql krakozyably

Această solicitare este necesară pentru a verifica în script-ul, dar nu și în phpMyAdmin, în cazul în care pot fi setate alți parametri

  1. character_set_client - codificare în care datele vor fi primite de la client
  2. character_set_connection - implicit pentru tot ceea ce, în compusul nu are nici o codificare
  3. character_set_database - codarea implicită pentru baza de date
  4. character_set_filesystem - codificare pentru sistemul de fișiere (Incarcari INFILE, SELECT ... INTO outfile etc.)
  5. character_set_results - codificare, în care rezultatul va fi selectat
  6. character_set_server - codificare, în care serverul se execută
  7. character_set_system - Identificatorii MySQL întotdeauna UTF8
  8. character_sets_dir - dosar cu codificări

În mod implicit, după ce instalați serverul MySQL, care este instalat leneș Hoster \ admin este codat Latin1. În consecință, variabilele globale enumerate mai sus vor fi în Latin1. Baza implicită, respectiv, și o masă, de asemenea. Și aceasta este ceea ce ar trebui să fie plătit la început să acorde o atenție la probleme nu au apărut mai târziu.

În mod ideal, ar trebui să aducă toate coduri de culoare marcate într-o singură valoare. Apoi, vom doar o să fie scutit de erori minore cu codare. De fapt, dacă lucrăm cu un hosting, apoi (3) și (6) nu putem influența. Dar nu e înfricoșător dacă configurați celelalte trei parametri. Mysql UMET transcodarea pe zbor configurat corect în cazul în care conexiunea de codificare.

În cele din urmă, întrebarea principală este ce să facă în cazul în care unul dintre tabelele MySQL (sau mai multe) din voprosiki greșit de codificare și site-ul krakozyably vizibil \?

1. Se determină tabela de codificare.

mysql> SHOW CREATE TABLE `files`

CREATE TABLE `files` (

`Id` int (10) nesemnate NOT AUTO_INCREMENT NULL.

`Int INode` (10) nesemnate NOT NULL.

`Int Pid` (10) nesemnate NOT NULL.

`SName` varchar (128) Latin1 PERSONAJ SET COLLATE latin1_general_ci NOT NULL.

`STitle` varchar (128) SET utf8 COLLATE CARACTERE utf8_general_ci NOT NULL.

PRIMARY KEY ( `id`).

KEY `iNode` (` iNode`)

) MOTORULUI = MyISAM DEFAULT CHARSET = utf8

În acest tabel, câmpul SNAME codificat Latin1, dacă avem conexiunea într-o codificare diferită, vom vedea fără sens.

2. Prin urmare, am examinat în continuare compusul de codificare, VARIABILELOR sql interogare spectacol ca „character_set_client“. Rețineți că funcția PHP mysqli_client_encoding (). Noi nu va funcționa, din moment ce afișează doar codificarea în momentul conectării.

3. Dacă compusul de codificare nu este coincis cu codificarea unuia dintre câmpurile din tabel, cele două opțiuni evidente.
Dacă avem toate tabelele într-o singură codificare, este mai ușor de a schimba codificarea conexiunii.
Dar cum să se stabilească câmpul incorecte tabelă de codificare?
Pentru a îndeplini această cerere 2