Olen nyt jonkin aikaa yrittänyt ratkaista mystistä ongelmaa, joka liittyy ääkkösiin.
Minulla on UTF8-muotoisia php-tiedostoja, mutta kun php-sivuilta lisätään dataa tietokantaan (joka sekin käyttää utf8), ääkköset eivät näy oikein! Siis missä tässä on vika? Sivuissa? Kokeilin kahta eri tietokantaa ja molempiin tulee sama ongelma. Nuo tietokannat ovat vielä eri serverillä.
Ääkköset kyllä tulostuvat oikein varsinaisella sivustolla, mutta eivät siis siirrettäessä dataa tietokantaan. Kokeilin myös jossain välissä avata yo. php-tiedostoja yhdellä Embarcaderon HTML-editorilla, jonka jälkeen nämä ongelmat tulivat. Muutin tuolla kyseisessä editorissa UTF-8, mutta ongelma säilyi. Kokeilin tuon jälkeen toisella editorilla, muutin asetukset sielläkin - ei mitään muutosta.
Epätoivoissani viljelin charsetia varsinaisen koodin sekaan, mutta eipä se mitään auttanut.
"Kirsikkana kakun päällä" kokeilin sitten aivan suoraan tietokannassa suorittaa SQL-kyselyn, johon lisäsin noita ääkkösiä. Tulostuivat siihen tekstikenttään ihan oikein, mutta suoritettuani kyselyn muuttuivat ihan suoraan siellä tietokannassa jo miten sattuu.
Mikä tässä nyt oikein mättää, mikä avuksi?
Tarkista koodi joka ottaa yhteyden tietokantaan.
$dbconnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbconnection->exec("SET NAMES utf8");
huomaa ero ohjelmointiputkan oppaaseen https://www.ohjelmointiputka.net/oppaat/opas.
$yhteys->exec("SET NAMES latin1");
Tai mikäli käytät vahoja mysql_-funktoita niin tietääkseni jotenkin näin
mysql_query("SET NAMES utf8"); mysql_query("SET CHARACTER SET utf8 "); mysql_set_charset('utf8',$jotain);
Aihe on jo aika vanha, joten et voi enää vastata siihen.