sql >> Database >  >> RDS >> Mysql

De codering van Griekse tekens werkt in HTML, maar niet in PHP

Ook al klinkt het heel vreemd dat je mysql-gegevens correct worden uitgevoerd waar php-strings falen bij het coderen, de manier waarop ik zou proberen je probleem op te lossen, zou zijn om het probleem op te splitsen in stappen die proberen te identificeren waar deze verkeerde codering wordt gegenereerd!

Allereerst moet u proberen uw default_charset . in te stellen naar utf-8 binnen het php.ini-bestand, wat als volgt wordt gedaan:

default_charset = "utf-8";

Als je dat niet kunt doen vanwege providerbeperkingen, kun je de waarde mogelijk nog steeds tijdens runtime wijzigen met behulp van de ini_set functie!

Zorg er ook voor dat de webserver is ingesteld om ook utf-8-gecodeerde bestanden uit te voeren! In Apache kan dit zowel in de httpd.conf als met htaccess-bestanden:

AddDefaultCharset UTF-8

Op dit punt, als alles faalt, nog steeds... probeer om te gaan met php-headers en relatieve html-tekenset:

<?php header("content-type: text/html;charset=utf-8") ?>
<!doctype>
<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <?php echo "α β γ δ ε ϝ ϛ ζ η θ ι κ λ μ ν ξ ο π ϟ ϙ ρ σ τ υ φ χ ψ ω ϡ" ?>
    </body>
</html>

Het is echter heel belangrijk dat uw bestanden ook worden opgeslagen met een geschikte codering (utf-8 is bijna altijd de betere keuze, het helpt veel problemen te voorkomen). Als je bestanden hebt opgeslagen met een andere codering dan utf-8, vernietig ze dan en maak nieuwe van hun oude inhoud. Soms zijn editors niet echt in staat om de coderingen goed te wisselen als het bestand eenmaal is aangemaakt, hoewel notepad++ daar over het algemeen goed in is; gebruik gewoon converto to niet de encode in functie!

Als het nog steeds niet werkt, hoewel ik hoop dat het nu wel het geval is, kun je enkele andere php-alternatieven bekijken, zoals mb_detect_encoding , mb_convert_encoding , htmlentities en htmlspecialchars om het probleem op te lossen!




  1. 2 manieren om rijen te retourneren die alleen niet-alfanumerieke tekens bevatten in Oracle

  2. 4 functies om een ​​getal op te maken tot 2 decimalen in SQL Server

  3. Hoe tabellen vooraf in de INNODB-bufferpool te laden met MySQL?

  4. Een door komma's gescheiden lijst converteren naar rijen in SQL Server