Localhostilla ääkköset tulostuu oikein ja käytän utf-8:aa. Serverillä tiedostot näyttävät olevan utf-8 muodossa, mutta ääkkösten tilalla on kysymysmerkit. Jos muokkaan tiedostoa ja laitan ISO 8859-1 tai -15, kysymysmerkitkin häviävät.
Tulostat siis sivulle ISO-8859-1-muotoista tekstiä, ja selain näyttää kysymysmerkkejä, koska se yrittää tulkita tekstin UTF-8:na mutta ääkköset eivät ole kelvollisia UTF-8-merkkejä.
Oletko asettanut tietokantayhteydellekin merkistön? Esim. näin, jos käytät tietokantaan MySQL-funktioita:
mysql_set_charset("utf8");
No, ensikis yritin, että localhostissa ja serverillä käytetään utf-8:aa php-tiedostoissa. Silloin tuli tämä ääkkösongelma. Kait se vika on siinä tiedostojen siirrossa.
Serveri vaan lataa tiedostoja lataa painikkeella, ihan samalla tavoin kuin sähköpostiin laitetaan liitetiedostoja. Ei siihen lataukseen pääse vaikuttamaan millään tavoilla.
Sain sivut toimimaan ääkkösin seuraavalla kummallisella menettelyllä (joka vahingossa tuli keksittyä):
- avaan tiedoston palvelimella US-asciina
- muokkaan tiedoston kummalliset merkit ääkkösiksi
- tallennan utf-8:n muodossa
Eihän tuo ole ratkaisu, jos pidemmän päälle ajatellaan.
Tallenna seuraava koodi UTF-8-muodossa, siirrä palvelimelle (ilman tuota keksimääsi kikkaa) ja kerro, mitä se tulostaa:
<?php header("Content-Type: text/plain; charset=UTF-8"); $s = "åäö"; echo "{$s} => "; var_export(count_chars($s, 1));
Tee sitten keksimäsi kikka ja kokeile vielä uudestaan. Tästä toivottavasti saamme jotain hyödyllistä tietoa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.