Ääkkösten toimivuus

Anonyymi

Aloittelen koodaamista php-ohjelmaa kehittääkseni.

Kun teen koodin localhostissa, ääkköset toimivat ihan OK mysql-tietokannan kanssa. Tietokannassa kaikki tekstikentät on utf8_swedich_ci.
Toimii esim echo ($_SESSION['nimi']);

Kun vien koodin nettipalvelimelle on tulostettavien kenttien eteen laitettava utf8_encode, jotta ääkköset tulevat oikein.
echo utf8_encode($_SESSION['nimi']);

Jos teen saman utf8_encode lisäyksen localhostissa, ääkköset tulevat väärin.
Esim: Käkikello

Jos jätän lisäyksen pois nettipalvelimella, tulee ääkkösistä erilaisia merkkejä, pukkaa mustaa salmiakkia.

Kuinka saisin localhostin toimimaan kuten nettipalvelin? Kiitos vastauksista!

18

1927

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      Eihän tuo vielä mitään, kun minä kirjoitin php, niin kone sano php: komentoa ei löydy

    • Anonyymi

      Laita dokumenttiisi charset -asetus esimerkiksi

      header('Content-type: text/html; charset=UTF-8');

      ja dokumentin tallennuksessa huomioi Encoding = UTF-8 without BOM.

    • Anonyymi

      Tämä on vähän kuin opetettaisiin ampumaan, mutta missään ei kerrota kuinka ase ladataan :-)
      Olen löytänyt noita asetusten laittamista, mutta mihin ja kuinka, ei oikein selviä.
      Esimerkiksi tämä ei näytä toimivan:
      <html>
      <head>
      <meta charset="UTF-8">

      Siis voisiko joku ystävällien sielu vä'ntää vähän rautalankaa. Eniten ihmetyttää tuo ero localhostin ja nettipalvelimen välillä. Tuolla tägillä pitäisi siis sama koodi toimia molemmissa? Nyt on aina siirrettäessä muokattava koodia.

      • Anonyymi

        Tuo charset asetus on ihan oikein jos sen laittaa kuten edellä osoitit html-tageihin.
        Toinen vaihtoehto on laittaa se php-osioon heti dokumentin alkuun kuten ketjussa aiemmin esillä oli.

        Oudot salmiakkimerkit ruudulla paljastavat, että koodisi pitää sisällään piilomerkkejä.

        Jos alat ihan oikeasti kirjoittamaan globaalisti ja omassa localhost -kotiverkossa yhtenevästi toimivaa koodia, niin välineet pitää olla kunnossa. Editoriksi ei riitä mikä tahansa notepad, vaan dokumentit pitää pystyä tallentamaan piilomerkittömänä (without BOM).

        File / Save as ~ Encoding = UTF-8 without BOM

        Jos nykyisestä editorista ei löydy tuollaista valintamahdollisuutta niin etsi joko ilmaisista tai maksullisista editoreista joku itsellesi sopiva. Ilmainen editori ei välttämättä ole paras.


      • Anonyymi
        Anonyymi kirjoitti:

        Tuo charset asetus on ihan oikein jos sen laittaa kuten edellä osoitit html-tageihin.
        Toinen vaihtoehto on laittaa se php-osioon heti dokumentin alkuun kuten ketjussa aiemmin esillä oli.

        Oudot salmiakkimerkit ruudulla paljastavat, että koodisi pitää sisällään piilomerkkejä.

        Jos alat ihan oikeasti kirjoittamaan globaalisti ja omassa localhost -kotiverkossa yhtenevästi toimivaa koodia, niin välineet pitää olla kunnossa. Editoriksi ei riitä mikä tahansa notepad, vaan dokumentit pitää pystyä tallentamaan piilomerkittömänä (without BOM).

        File / Save as ~ Encoding = UTF-8 without BOM

        Jos nykyisestä editorista ei löydy tuollaista valintamahdollisuutta niin etsi joko ilmaisista tai maksullisista editoreista joku itsellesi sopiva. Ilmainen editori ei välttämättä ole paras.

        Muutosten jälkeen kannattaa sivu "pakkopäivittää" (Ctrl F5) ettei käy niin että vaikka sivu olisi jo koodattu korjausten myötä oikein, niin selain itsepintaisesti näyttää edelleen cacheen tallennettua sivua eli sitä aluksi virheellistä sivua. Näin käy usein silloin kun tiedoston nimi säilyy samana ja selain on opetettu käyttämään välimuistia aina kun se on mahdollista.

        Muistisääntönä localhostin ja nettiserverin välillä tiedostoja siirrellessä siis aina pakkopäivitä selaimella kohdesivu, kun olet tehnyt muutoksia. Erityisesti erillisten css-tiedostojen päivittämisen yhteydessä ongelmat vain kasaantuvat, jos unohtaa Ctrl F5 -näppäinyhdistelmän olemassaolon ja hyödyn.


    • Anonyymi

      Tee yksinkertainen ääkköstesti. Luo mallin mukainen tiedosto ja tallenna se piilomerkittömänä:

      <!DOCTYPE HTML>
      <html lang="fi">
      <head>
      <meta charset="UTF-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      <title>Ääkköstesti</title>
      </head><body>
      <?php echo "Åke, älä ööliä "; ?>
      läikytä!
      </body></html>

      Tiedoston skandien pitää näkyä identtisenä niin localhostissa kuin nettipalvelimellakin.

    • Anonyymi

      Joo, nyt selvisi taas yksi asia. Notepad ei ilmeisesti tue tuota esitettyä talletusta.
      Mikähän olisi kätevä aloittelijan editori?

      Notepad näyttää väreilla ja antaa vinkkejä hyvin ja toimi hienosti, kunnes tuli vastaan tämä ääkköstys.

      Ajattelin, että nettipalvelimen asetukset saisi jotenkin kopsattua localhostiin samoiksi, mutta se voi olla hankalaa.

      Mennään siis noilla muilla keinoilla. Tavoite on vain päästä eroon koodin muokkaamisesta nettipalvelimelle siirrossa.

      • Anonyymi

        Notepad kyllä mahdollistaa tuon piilomerkittömän koodin kirjoittamisen.

        Valikosta: Tiedostomuoto / UTF-8 (ei BOM).

        Pitkässä juoksussa on kyllä parasta panostaa kunnon editoriin sikäli kun meinaat kirjoittaa koodia vielä vuodenkin päästä.

        Tosiaan koodin pitää olla sama ajettiinpa se sitten serveriltä Lontoosta tai localhostista Humppilasta. Suomen kielen "kirjavuuden" takia vain näitä pieniä ennakkosäätöjä pitää huomioida.


    • Anonyymi

      Katos vaan, minulla onkin koko ajan ollut valittuna

      Tiedostomuoto -> UTF-8 (ei BOM)

      Ja myöskin löysin:
      Asetukset -> Uudet tiedostot -> Koodaus UTF-8 (ei BOM) ja laitettuna täppä Käytä avoimiin ANSI-tiedostoihin.

      Oletuskoodikieli oli Normal Text. Vaihdoin siihen PHP, vaikka sillä ei liene merkitystä. Helpottaa kait vain ettei tarvi tiedostopäätettä aina etsiä.

      Eli tältä osin asia on kunnossa. Pitäisikän katsella jotain INI-tiedostoja tms?

    • Anonyymi

      htnl-osiossa on:
      <meta charset="UTF-8">

      php:
      $result = mysqli_query($con, "SELECT * FROM taulu WHERE nimi = '$nimi'");
      mysqli_close($con);
      while($row = mysqli_fetch_array($result)):;
      echo ($row[0]) . " " . utf8_encode($row[1]) . " / " . utf8_encode($row[2]) . "<br>";
      endwhile;

      Tietokannassa on ääkköset. Helpointa olisi saada tämä toimimaan ilman encoodausta.

    • Anonyymi

      Niin, tuo edellä esitetty esimerkki toimi aivan OK sekä localhostissa (Åke, älä ööliä läikytä! ), että nettipalvelimella (Åke, älä ööliä läikytä! )
      Ongelma liittyy siis mysql-tietokantaan? Tai sieltä tehtävän haun käsittelyyn (esitetty edellä).

    • Anonyymi

      OK. Tuossa tapauksessa skandien merkistöasetus pitää vielä erikseen mainita tietokantakyselyn ihan alussa, näin:

      $con->set_charset("utf8");
      $result = mysqli_query($con, "SELECT * FROM taulu WHERE nimi = '$nimi'");
      mysqli_close($con);
      ...jne...

      eli tuo esimerkin eka rivi vast'edes kaikkiin mysql-kyselyihin, niin jo vain homman pitäisi toimia.

    • Anonyymi

      Olen mykistynyt - tuo mitä ilmeisimmin toimii. Vinkkiä en ole Mr Googlen avulla löytänyt.
      Kokeilen vielä muissakin kohdissa ja jos kerran näin on, niin rivin lisääminen on pienempi työ kuin muokata tulostusta joka kerta erikseen.
      Ei voi kuin kiitellä!

    • Anonyymi

      Ollaksemme täsmällisiä ilmaisuissa ja välttyäksemme väärän tiedon levittämiseltä, niin korjaan vielä edellistä:

      $con->set_charset("utf8");

      Tuota asetusta ei siis tarvitse jokaisen kyselyn/queryn alkuun, vaan yhden kerran jokaisen mysql-istunnon alkuun.

      Saman istunnon aikana voi luonnollisesti tehdä 1-n kpl kyselyjä ja asetus on voimassa kunnes istunto päättyy komentoon

      mysqli_close($con);

    • Anonyymi

      Tämä auttoi minuakin, mutta
      utf8 vaiko utf8mb4?

      • Anonyymi

        utf8 vaiko utf8mb4 - kas siinä bulma.

        Jos tykkää viljellä tietokannassa nykyajan hömpötyksiä kuten emojit, niin sitten jälkimmäinen charset on toimivampi.

        Kukin koodatkoon tarpeittensa mukaan ja kokeilemalla löytää aina sen itselle oikean.


    • Anonyymi

      Koodaus on menneen talven lumia; ennustusten mukaan kuuluu ammatteihin joiden kysyntä laskee - tekoälystä johtuen, ja kuten huomaan, editorit voi hoitaa hommat ja jotain JavaScriptiä ei tarvita, jolla muutenkin vielä kehityttävää, kuten koko koodausalalla. Mutta koodaus on jo aikansa elänyt konsepti.

      • Anonyymi

        Yksinkertaisten ohjelmointitehtävien kysyntä laskee. Siis niiden jota voidaan korvata tekoälyllä tai valmiilla palikoilla. Valmiilla palikoilla korvaaminen alkoi jo 80-luvulla.

        Ohjelmoijia kyllä tarvitaan jatkossakin siihen, että tulkitsee tilaajan/osakkeenomistajan toiveita ja muotoilee niitä tietokoneen ymmärtämään muotoon.

        Avainasemassa on ohjelmoijat jotka ohjelmoivat mahdollisimman vähän hyödyntäen teknologian mahdollisuudet mutta kykenevät samalla ajattelemaan laajasti ja ymmärtävät liiketoimintaa.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Olet hirvein ihminen kenet olen tavannut.

      Olet järkyttävä.
      Ikävä
      258
      5516
    2. Kamalaa! Ketä tappoi vanhempansa Huittisissa? Ketkä tapettiin?

      Kamalaa! Ketä tappoi vanhempansa Huittisissa? Ketkä tapettiin? Shokki!
      Huittinen
      58
      2756
    3. Haluan sua ihan vtullisen paljon

      Kokonaan ja seksuaalisesti. Pää räjähtää kohta
      Ikävä
      90
      2459
    4. Martina on käynyt puhumassa viisauksia

      Iltalehden artikkelissa Martinan viisaudet.
      Kotimaiset julkkisjuorut
      407
      1648
    5. Ajattelen sinua iltaisin, aamulla, päivittäin

      Ehkä siinä jo pientä vinkkiä. Oot jäänyt pahasti mieleen. Sun katse on niin syvä ja oot niin lempeä. Hyvä olla sun kanss
      Ihastuminen
      104
      1400
    6. SDP:läinen lähettiläs Titta Maja-Luoto RAIVOAA lähetystössä -?

      SDP:n puolueen Maja-Luoto on Portugalissa noussut Median otsikoihin, koska RAIVOAA työntekijöille ja pitää Heitä lähinnä
      Yhteiskunta
      29
      1213
    7. Mitä alkoholijuomaa on myyty sekä Linda Lampeniuksen että Matti Nykäsen nimellä? Testaa tietosi!

      Mikähän alkoholijuoma se mahtoi olla…? Tule pelaamaan kivaa Testerin Juomavisaa! Kuinka monta saat oikein? Tästä pääse
      Juomat
      10
      1139
    8. Voiko vauva uskoa ?

      Lohkoissa väitetään ettei vauva voi uskoa. Tässä näet vauvan uskon. https://youtube.com/shorts/QhFbPSdjpnA?si=Zb2BCRST9
      Helluntailaisuus
      265
      1011
    9. Sinkkujen lapset ja kesäloman pituus

      Tuli mieleeni kysyä oletteko huolissanne lasten ja nuorten tulevaisuudesta, tai siitä mitä he nyt joutuvat kokemaan yhte
      Sinkut
      180
      947
    10. Haapaveen nähtävyys?

      Se teidän "suihkulähde" on ylittänyt uutiskynnöksen Suomen rajojen ulkopuolella Sveitsissä. Se näytettiin paikallisten u
      Haapavesi
      42
      925
    Aihe