Modificarea codificării unui raport de eroare în depășirea stivei php în limba rusă

Rezultatul erorii MySQL va depinde de asamblarea propriu-zisă, LANG pe server (+ mai multe gunoi) și cum se afișează serverul de text WEB







Vă sfătuiesc să începeți depanarea de la instalare în parametrul .htaccess

În 90% din cazuri, acest lucru se încheie

Dacă nu vă ajută, urmați pașii:

  1. Cu ce ​​sistem de operare funcționează și ce codificare în acest sistem de operare în mod implicit
  2. În ceea ce codifică serverul SQL de viață
  3. În ceea ce codifică WEB-server-ul trăiește

Doar copiați drept chiar în cazul în care ați văzut, nu de la postul de mai sus, de exemplu. Simbolul. - un caracter de imprimare UTF-8, nu poate fi codificat în altă parte) .Acest lucru se întâmplă după introducerea fisurilor în undeva unde conținutul este în UTF-8. ele sunt pur și simplu convertite la caractere UTF-8 obișnuite.

UPD. Am efectuat un experiment:

Am scris-o într-un fișier în codare UTF-8:







$ env | grep LANG LANG = en_US.UTF-8

Imaginea rezultată din distilează UTF-8 la CP-1251 (aka windows-1251)

$ Inconv -f utf-8 ./q686819.txt -t ferestre-1251

Consola afișează ieșirea la UTF-8, dar caracterele de ieșire sunt CP-1251

De aici puteți trage următoarea concluzie utilă: MySQL afișează codul sursă în codarea windows-1251 (cel mai probabil pentru că este compilat sub Windows, iar în localizarea rusă este în mod implicit Windows-1251). Și vedeți semnele de întrebare, deoarece privim simbolurile prin prisma codării utf-8

Soluție: fie schimbați MySQL de asamblare de pe EN, fără localizare în limba rusă (probabil acolo, în setările pe care le puteți schimba LANG eroare sau ceva de genul asta - de obicei, aceste pachete face multilanguage, și selectați limba parametrilor de funcționare) sau a nu schimba nimic și de ieșire în ferestrele 1251 (așa cum este acum), dar priviți-o prin prisma aceleiași codări de la windows-1251, de exemplu în .htaccess

Încercați, aveți nevoie de experimente cu asamblarea dvs. și cu Windows. Din păcate, nu vă voi spune în detaliu - folosesc Linux și Apache httpd și mariadb de obicei din depozit. Dar direcția este cu siguranță corectă







Articole similare

Trimiteți-le prietenilor: