Citat:
În prealabil postat de CristianR
@Copăcel: Dacă folosești Romanian legacy n-ai probleme. Dar dacă ai și Romanian standard instalată, comutarea de pe legacy pe standard se poate face fără să observi.
E unul din lucrurile bune pe care le-am învățat de la Igor.
E din pricină că legacy merge pe ț-ul și ș-ul vechi (dar incorect), scris cu sedilă în loc de virgulă dedesubt.
|
Man stai linistit daca iti schimbi limba si regiunea la tastatura si chiar daca iti schimbi chiar si setarile de regiune, cum a fost randat postul lui Ioan nu o sa-ti schimbe.
Doarece Ioan a scris in unicode iar baza de date fiind probabil in ISO/IEC 8859-X tot ce este "extended" la charsetul de baza se codifica intr-un numar care randat inapoi in unicode apare cu Sedila aia.
De aceea cand scrii in unicode in browser, tu vezi caracterele cum trebuie, deorece textul este randat de browser , care suporta unicode. Problema apare ca dupa ce faci send sau salvezi postul initiezi un request catre dispecerul de cereri al serverului de http, care face forwarding la baza de date. Baza de date fiind in ISO/IEC 8859-X orice caracter din postul tau care nu intra in charsetul de baza ISO/IEC 8859-X (unde X poate fi orice substandard al standardului de baza), este codificat ca un numar si stocat sub forma de text.
Apoi cand serveste raspunsul la requestul facut il serverste inapoi , unde toate caracterele ce nu intra in charsetul de baza sunt codificate cu acel numar.
Cand raspunsul ajunge in browserul tau care foloseste unicode, atunci broswerul interpreteaza acel numar in standard unicode , iar acel numar apare cu sedila aia.Ca drept rezultat vei vedea ca pt fiecare carcater ca nu a putut fi transformat in standardul bazei de date, apare acelasi caracter randat in browser, respectiv caracterul cu sediala aia.
Asta inseamna ca sedila aia poate fi orice litera care are diactrice romanesti sau ma rog specifice unicode-ului, dar ca nu intra in charsetul de baza al standardului pe care baza de date il foloseste.