Welke codering? Problemen met onjuiste codering van webpagina's oplossen

Initiële gegevens

  1. Laten we onze website als voorbeeld nemen: www.yourmaster.ru
  2. Alle siteteksten worden gecodeerd geschreven en op de site geplaatst "windows-1251" en de browser wordt hierover niet geïnformeerd
  3. De hostingserver verzendt standaard automatisch de volgende header:
    Inhoudstype: tekst/html; tekenset=utf-8

Als er een dergelijke discrepantie bestaat tussen de daadwerkelijke codering van de site en de coderingsinformatie in de header die door de server wordt verzonden, zullen er problemen optreden bij het weergeven van de sitepagina's in de browser van de bezoeker.

Correcte codering is erg belangrijk!

Laten we proberen uit te leggen waarom.

Met de hierboven beschreven instellingen kan de browser van de gebruiker niet automatisch bepalen in welke codering de teksten op de bekeken site zijn geschreven. En hoogstwaarschijnlijk worden de pagina's onleesbaar weergegeven. Als u een dergelijke “miscommunicatie” tussen de browser en uw site tegenkomt, moet u dringend passende actie ondernemen. Anders zal dit hoogstwaarschijnlijk tot een reeks ernstige problemen leiden.

Ten eerste In dergelijke omstandigheden en site-instellingen zullen bezoekers voortdurend handmatig (met behulp van de selectiemethode) de codering voor de browser moeten opgeven om de site weer te geven. Dit vereist een paar extra muisklikken. Maar je moet toegeven dat niet iedereen graag 2-3 muisklikken extra wil maken om de informatie op de pagina in een leesbare vorm te zien. Bovendien weten veel mensen niet alleen niet hoe ze de weergavecodering in de browserinstellingen moeten wijzigen, maar ook wat codering in het algemeen is! De meeste bezoekers kunnen besluiten dat de site door de eigenaar is verlaten of door iemand is gehackt, en zullen proberen er niet meer naar terug te keren.

Ten tweede, als er een dubbelzinnige definitie is van de codering van de sitepagina, zoekmachines indexeren mogelijk de tekstinhoud van de site niet correct. Wat op zijn beurt ernstige problemen veroorzaakt met het gebruikersverkeer van zoekmachines. Natuurlijk proberen sommige zoekmachines op de een of andere manier de juiste codering uit de inhoud van pagina's te bepalen, maar dit maakt het niet veel eenvoudiger. In de regel blijft het probleem bestaan.

Ik hoop dat je je hebt gerealiseerd dat problemen met codering een zeer ernstig obstakel kunnen worden voor het functioneren van de site, de ontwikkeling ervan en het aantrekken van regelmatige bezoekers.

Om ervoor te zorgen dat dergelijke problemen met de codering niet optreden, moet u de juiste instellingen maken, zowel op de hostingserver als op de sitepagina's.

De site-instellingen moeten zodanig zijn dat elke browser of zoekmachine-robot ONKINDELIJK kan bepalen in welke codering de informatie van de site wordt verzonden!

Een probleem met de codering van een site oplossen

We hebben al gemerkt dat alle teksten op onze site in “windows-1251”-codering worden geschreven en naar de browser van de sitebezoeker worden verzonden. Wat kunnen we doen om ervoor te zorgen dat de server waarop onze site wordt gehost de juiste coderingsinformatie in de header naar de browser verzendt? Laten we in volgorde verder gaan...

1. Om niet afhankelijk te zijn van serverinstellingen, op alle pagina's van de site, rechtstreeks in de HTML-code, moet u expliciet de volgende richtlijn schrijven met behulp van een metatag:

Het moet op alle pagina's worden geplaatst, bij voorkeur onmiddellijk na de openingstag . Hierdoor kan de browser automatisch de juiste weergavecodering selecteren bij het laden en interpreteren van de pagina in overeenstemming met de ontvangen richtlijn! Deze richtlijn alleen zou voldoende moeten zijn om ons probleem op te lossen. Maar zo was het in theorie ook bedoeld. Maar in de praktijk is deze richtlijn niet altijd voldoende. In zeldzame gevallen komt het voor dat de browser als codering voor het weergeven van de pagina niet degene selecteert die is gespecificeerd in de richtlijn op de pagina zelf, maar degene die in de header van de server is verzonden! En als de coderingsinformatie die op twee plaatsen is opgegeven niet overeenkomt, kan het probleem blijven bestaan.

2. Zodat de server in zijn antwoord de juiste coderingsinformatie geeft, moet u een bestand maken in de hoofdmap van uw site .htaccess en schrijf de richtlijn daarin:

Standaardtekenset toevoegen Windows-1251

Vervolgens blijft de server standaard de coderingsheader verzenden, maar de naam van de codering komt overeen met de naam die van kracht is op de site zelf. Er zullen geen verschillen meer zijn in de namen.

Als het bestand .htaccess al op uw server bestaat, voeg dan eenvoudigweg de opgegeven richtlijn toe, bijvoorbeeld helemaal aan het begin. En verwijder in geen geval onnodig informatie die er al in staat!

Dat is de oplossing voor het probleem. Mee eens, dit is allemaal niet zo moeilijk?! Maar het is erg handig om allerlei problemen met de beruchte codering te voorkomen.

Door de twee hierboven genoemde aanbevelingen achtereenvolgens op te volgen, zullen browsers zeker geen fouten kunnen maken bij het automatisch selecteren van de juiste codering voor het weergeven van informatie op uw website. We hebben de coderingsinformatie immers ondubbelzinnig, correct en zelfs in twee verschillende richtlijnen aangegeven!

Bijzondere situaties

Situatie één

Websitemakers, en vaker wel dan niet zelfs de klanten zelf, beginnen willekeurig en gedachteloos bepaalde wijzigingen aan de website aan te brengen, teksten te plaatsen zoals ze willen, enz. Tot het punt dat ze als gevolg daarvan op de website terecht kunnen komen. secties met informatie in verschillende coderingen. We kunnen niet zeggen dat dit de juiste aanpak is, maar we zullen het feit wegduwen dat dit gebeurt en dat is het dan. In dit geval kan er, zelfs als we de twee hierboven genoemde aanbevelingen volgen, nog steeds een situatie ontstaan ​​waarin de server informatie verstrekt over de ene codering en een andere codering duidelijk in de HTML-code van de pagina is geschreven. In zo'n geval zou de eenvoudigste oplossing misschien de volgende zijn.

Naar bestand schrijven .htaccess richtlijn:

AddDefaultCharset Uit

Bij gebruik van deze richtlijn verzendt de server eenvoudigweg helemaal geen header met informatie over de codering van de verzonden pagina. Vervolgens zullen browsers uitgaan van de coderingsgegevens, die expliciet worden aangegeven in de HTML-code op de sitepagina's zelf. Bovendien kunnen de gegevens op één pagina worden gecodeerd Windows-1251, en op een andere pagina, bijvoorbeeld in utf-8. Het belangrijkste is om niet te vergeten om op deze pagina's de juiste metatags aan te geven met informatie over de juiste codering voor herkenning en weergave van tekst door de browser.

Hoewel een dergelijke oplossing de eenvoudigste is, is deze misschien niet de meest optimale en correcte. Op een goede manier moet u alle informatie op de site en in alle secties van de site in dezelfde codering plaatsen! En als er meerdere pagina's met een andere codering zijn, is het beter om de informatie daarin bij te werken door alle teksten naar de vereiste codering te converteren.

Situatie twee

Zoals u weet, selecteren de meeste sites bij het genereren van pagina's een deel van de gegevens uit een database, bijvoorbeeld MySQL (als de site in PHP is geschreven). Vaak, bij het overbrengen van een site van de ene hosting naar de andere kunnen er problemen optreden als gevolg van coderingsproblemen tussen de gegevens die zijn opgeslagen in de MySQL-database en de gegevens die bijvoorbeeld rechtstreeks in de sitesjablonen zijn opgeslagen. Er kan zich dus een situatie voordoen dat bij het maken van één pagina deze gegevens in verschillende coderingen kan bevatten. Dit is misschien wel een van de ernstigste coderingsfouten die mogelijk zijn op een website en moet onmiddellijk worden opgelost. Anders kunnen er later extra problemen optreden bij het invullen en bewerken van de site.

Het oplossen van dergelijke meningsverschillen met gegevens die in de database zijn opgeslagen, wordt bereikt door de coderingsinstellingen correct en expliciet in te stellen wanneer verbinding wordt gemaakt met de database en voordat gegevens daaruit worden opgehaald. Als de gegevens op onze website bijvoorbeeld zijn opgeslagen in Windows-1251-codering, dan moeten we gegevens uit de database in dezelfde codering lezen. Om dit te doen, voert u, nadat u verbinding heeft gemaakt met de database met behulp van de PHP-functie mysql_connect() (of mysql_pconnect()), de volgende SQL-query uit:

mysql_query("NAMEN INSTELLEN cp1251");

Dit verzoek vertelt de MySQL-databaseserver dat alle gegevens worden opgeslagen en moeten worden verzonden in cp1251-codering (dit is de coderingsnaam die in MySQL wordt gebruikt in plaats van de eerder genoemde naam windows-1251, die wordt gebruikt bij het verzenden van HTML-gegevens).


Ik heb de afgelopen uren op mijn website doorgebracht met het testen van HTML 4.01 Strict en het is me gelukt, maar er is nog een waarschuwing waar ik maar niet vanaf kan komen. Waarschuwing:

Tekencodering komt niet overeen!

De tekencodering die is opgegeven in de HTTP-header (iso-8859-1) wijkt af van de waarde in het element (utf-8). Ik gebruik de waarde uit de HTTP-header (iso-8859-1) voor deze bevestiging.

Voor algemene informatie over het wijzigen van de karaktersetheader in verschillende netwerkstacks, zie http://www.w3.org/International/O-HTTP-charset


2018-05-25 13:30

De server markeert het document duidelijk als ISO-8859-1 in de HTTP-headers. Probeer default.html op te slaan met UTF-8-codering en een geschikte editor.


2018-05-25 03:07

Oké, ik heb een gedeeltelijke oplossing voor mijn probleem bedacht. Omdat alleen het bestand default.html de waarschuwing veroorzaakte, ging ik ervan uit dat de server er iets speciaals mee deed vanwege de naam. Daarom heb ik een nieuw home.html-bestand gemaakt met dezelfde inhoud als het standaard.html-bestand en het .htaccess-bestand naar het nieuwe bestand verwezen (zie regel 3 hieronder).

# Gebruik PHP5 als standaard AddHandler application/x-httpd-php5 .php DirectoryIndex home.html AddDefaultCharset UTF-8

Dit loste het probleem op en alle bestanden worden nu herkend als UTF-8. Ik weet nog steeds niet zeker wat de server doet met het bestand default.html of waar de instellingen hierover zijn, maar naarmate mijn probleem verdwijnt, zal ik het vergeten.

In dit artikel zal ik proberen alle “i”s (en ook de “i’s”) te plaatsen als het gaat om het kiezen van de codering voor de HTML-pagina die wordt gemaakt.

Toen ik voor het eerst begon met het bouwen van websites, had ik voortdurend problemen met deze coderingen. Je slaat de HTML-pagina op, uploadt deze naar de server, opent hem, boem, en er is wat onzin. Hallo, we zijn gearriveerd.

Of in de debugging-omgeving (bijvoorbeeld de lokale ontwikkelomgeving "") is alles in orde, maar vanaf de hosting kijken ze, verdomde klootzakken, brutaal naar mij.

Er was zoveel pijn met de motoren. Plotseling, om een ​​onbekende reden, veranderen inheemse Russische letters in...

Nu zullen we deze kwestie in detail behandelen en u zult het duidelijk weten in welke codering moet de HTML-pagina worden opgeslagen? En via welke instrumenten.

Laten we het concept definiëren om ons wederzijds begrip te versterken codering. Dus, codering is een tabel met correspondentie tussen machinecodes en alfabettekens. Er is een reeks machinesymbolen die een slimme computer, in overeenstemming met de geselecteerde codetabel, vervangt door letters die wij begrijpen.

In de jaren 90 van de vorige eeuw (wat een oudheid, en ik herinner me nog de kalender van 1991 aan de muur) waren er 4 coderingen voor pc en nog een, zijn eigen, voor Mac. De ironie van het lot is dat in al deze coderingen Latijnse karakters werden gekoppeld aan machinecodes met behulp van hetzelfde algoritme, maar met betrekking tot het Cyrillische alfabet had elk van de coderingen zijn eigen mening.

Al deze verwarring leidde tot de verschijning van krakozyabrs. Als bijvoorbeeld het woord ‘ Vraag", getypt in Windows-1251-codering, weergave in KOI8-R-codering, je krijgt het woord " bNOPNYA».

Godzijdank liggen de jaren negentig al ver achter ons en van de vijf waanvoorstellingen zijn er nog maar twee normale over. Maar dit is voldoende voor een beginnende webmaster om in twee dennen te verdwalen. Het is oké, maak je geen zorgen, nu haal ik je uit dit bos!

Momenteel de keuze voor HTML-documentcodering staat tussen windows-1251 en utf-8. En nu opgelet: utf-8 is veel rijker, krachtiger en de toekomst ligt daarin. We zullen onze HTML-bestanden dus opslaan in utf-8.

Ik zal mijn woorden rechtvaardigen ;). UTF-8 bevat tekens zoals ↓. En in windws-1251 is dit in plaats van deze symbolen: > . En in utf-8 staat een “euro”-teken; Met utf-8 kun je ook een aantal verschillende specifieke karakters combineren die worden gebruikt in talen zoals Georgisch, Hebreeuws, Chinees en Japans in één HTML-bestand; en ook utf-8in HTML-coderingen- dit is een regel van goede manieren.

Ik hoop dat ik je heb overtuigd en dat je Unicode zult gebruiken (trouwens, "utf-8" en "Unicode" zijn synoniemen, of, om preciezer te zijn, utf-8 is een van de coderingen van de Unicode-familie, die populair geworden onder webontwikkelaars).

Laten we nu eens nader kijken naar de hulpmiddelen voor het transcoderen van bestanden die ik u aanbeveel te gebruiken, beste lezer.

Hulpmiddelen voor het werken met HTML-bestandscoderingen

Eigenlijk zijn het er maar drie:

  • PSPad. Gratis teksteditor, mijn favoriet.
  • . Nog een goede teksteditor en ook gratis.
  • Droomwever. Welnu, u kent Dreamweaver al van mijn .

We laden een HTML-bestand in de PSPad. En hoe kunnen we begrijpen wat voor soort codering het geladen proefpersoon heeft? Heel eenvoudig: alles staat duidelijk geschreven in de statusbalk (hieronder).

Open HTML-bestandscodering Windows-1251

Laten we nu bij het maken van een nieuw HTML-document zorgen voor de codering ervan.

Laten we naar mijn favoriete menu gaan PSPad. Wij zijn geïnteresseerd in het artikel Formaat. Daarin zullen we het vakje naast de utf-8-codering aanvinken.

En dus is de codering van het toekomstige bestand Windows-1251

Nu over hoe wijzig de HTML-bestandscodering. Ja, het blijkt heel eenvoudig:

U moet op de vereiste codering in het menu-item klikken Formaat en de codering zal veranderen. Sla daarna het bestand op, het wordt opnieuw gecodeerd en de klus is geklaard.

Met betrekking tot Kladblok++ alles lijkt erg op de hierboven beschreven situatie. Alleen om met coderingen te werken, moet u het menu-item gebruiken Coderingen.

Het enige verschil is dat in het geval van Notepad++ menu-items verschijnen die speciaal zijn ontworpen voor coderingsconversie Overzetten... (naar mijn mening onnodig, alles is eenvoudiger op de PSPad en daarom gebruik ik hem). Dit zijn dus de codes waarop u moet klikken als u de coderingen van ons HTML-bestand wilt wijzigen.

Bij het opslaan in utf-8 hebben we onder andere de keuze: zonder stuklijst of met BOM. Wij als webmasters moeten codering gebruiken UTF-8 (geen stuklijst).

Dit is wat Wikipedia zal antwoorden op de vraag “wat is BOM”

Om het Unicode-weergaveformaat in een tekstbestand te bepalen, wordt een techniek gebruikt waarbij het teken U+FEFF (zero-width non-breaking space), ook wel Byte Order Mark (BOM) genoemd, aan het begin van de tekst wordt geschreven. . Deze methode maakt onderscheid tussen UTF-16LE en UTF-16BE omdat het U+FFFE-teken niet bestaat. Het wordt soms ook gebruikt om naar het UTF-8-formaat te verwijzen, hoewel het concept van bytevolgorde niet op dit formaat van toepassing is.

Als je bovenstaande tekst 10 keer leest en op je hoofd krabt, wordt het duidelijk: voor utf-8 BOM hebben we NIET nodig. Bovendien, als u een bestand opslaat met een php-script in de codering utf-8 met stuklijst, dan zal het niet werken, omdat de handler niet begrijpt wat voor onzin er aan het begin van het scriptbestand staat (ik bedoel die vaste spatie met een breedte van nul).

Nou ja, het enige dat overblijft is om het van dichterbij te bekijken Droomwever.

Let bij het maken van een nieuw bestand op de codering waarin het wordt gemaakt. Om dit te doen, in het venster voor het maken van een nieuw document Bestand → Nieuw (Ctrl+N) gebruik de knop Voorkeuren...

En kijk eens naar wat is ingesteld als de standaardcodering:

Standaardcodering van het gegenereerde HTML-bestand in Dreamweaver

Transcodeer een geopend HTML-bestand in Dreamweaver mogelijk in dialoog Pagina-eigenschappen, die vanuit het menu wordt gestart BewerkenPagina-eigenschappen (Ctrl + J).

Selecteer de gewenste codering en druk op OK en dat is alles, de transcoderingstaak is voltooid (maar de stuklijst is nog steeds niet nodig, vink het vakje niet aan).

Detectie van browsercodering

Ons HTML-bestand wordt dus opgeslagen in de codering die we hebben gekozen. Laten we nu eens kijken naar de vraag: Hoe weet de browser welke codering in een bepaald HTML-bestand wordt gebruikt?

Er zijn hier drie opties:

1. Wij vertellen zelf aan de browser welke codering voor dit HTML-bestand is ingesteld. Dit gebeurt met behulp van de META-tag

Het bovenstaande voorbeeld instrueert de browser dat het gedownloade HTML-bestand in codering wordt opgeslagen utf-8.

Als het HTML-bestand is opgeslagen in Windows-1251-codering, dan:

Vergeet trouwens niet om bij het transcoderen van bestanden de richtlijnen in de META-tag te wijzigen naar de huidige. Dreamweaver doet dit bij het wijzigen van de codering automatisch, maar in andere teksteditors moet u de toegepaste codering en de META-tagrichtlijn zelf matchen.

De volledige HTML ziet er als volgt uit (ik citeer het om de vraag te begrijpen “waar is de META-tag met de aangegeven coderingsrichtlijn?”, let op de 4e regel):

Naamloos document Nou, enz.

2. Gebruik het .htaccess-bestand. Soms forceert de server de headers voor gedownloade HTML-bestanden en vertelt de browser de standaardcodering. In dit geval let de browser niet op de richtlijnen in de META-tag, maar geeft hij het HTML-bestand weer in de codering die door de server wordt gerapporteerd. Om ervoor te zorgen dat het bestand wordt gedownload in de codering die u nodig heeft (hosting dwingt u vaak om de Windows-1251-codering op te geven), wordt een bestand met de naam ".htaccess" gemaakt in de hoofdmap van de hostingmap.

Dit bestand is bedoeld voor aanvullende serverconfiguratie. Het effect van .htaccess-richtlijnen is van toepassing op alle bestanden en submappen die zich bevinden in de map waarin u het .htaccess-bestand hebt opgeslagen.

Dit bestand kunt u bijvoorbeeld in Total Commander aanmaken door op de sneltoetscombinatie te drukken Shift+F4 en het specificeren van de naam van het gemaakte bestand .htaccess. Vervolgens specificeert de teksteditor richtlijnen voor aanvullende standaardcoderingsinstellingen.

Voor HTML-bestanden gecodeerd met UTF-8 in .htaccess moet je één regel schrijven:

AddDefaultCharset UTF-8

Voor HTML-bestanden in Windows-1251-codering:

Standaardtekenset toevoegenWindows-1251

Als uw hosting listig verstandig is en geen aandacht besteedt aan deze richtlijnen, dan kunt u het volgende proberen:

Charsetdisable op AddDefaultCharset Uit

Als dit niet werkt, vraag dan gewoon aan je host wat je moet doen om de standaardcodering uit te schakelen :). Dit alles is afhankelijk van de specifieke serverinstellingen van de hostingprovider.

3. PHP-instructie die de standaardcodering specificeert. In het bestand dat in de gewenste codering moet worden weergegeven, ondanks de instellingen van de server van de hostingprovider, wordt helemaal aan het begin een richtlijn met php-code aangegeven:

Deze php-code verzendt een serverheader die de standaardcodering van de browser aangeeft. In het bovenstaande voorbeeld wordt utf-8-codering gebruikt om de pagina weer te geven.

Er zijn meestal geen trucjes in de serverinstellingen van de hostingprovider om met dergelijk afval om te gaan.

Ik zou willen opmerken dat om de server PHP-instructies te laten verwerken, het HTML-bestand de extensie moet hebben .php(bijvoorbeeld index.php).

Heeft u nog vragen over coderingen? Schrijf in de reacties. We moeten deze problemen voor eens en voor altijd oplossen :)

Vlad Merzjevitsj

Metatags worden gebruikt om informatie op te slaan die bedoeld is voor browsers en zoekmachines. Zoekmachinemotoren gebruiken bijvoorbeeld metatags om sitebeschrijvingen, trefwoorden en andere gegevens te verkrijgen.

Metatags voor zoekmachines

Er is een mening onder website-ontwikkelaars dat correct geschreven metatags u in staat stellen om naar de top van zoekmachines te stijgen.

Er zijn twee metatags speciaal ontworpen voor zoekmachines: beschrijving en trefwoorden. Sommige webmasters voegden trefwoorden toe aan de trefwoordensectie die niets te maken hadden met het onderwerp van de site, maar genoten toch enig succes onder bezoekers van zoekmachines. Na enige tijd leerden zoekmachines echter met dit fenomeen om te gaan en de inhoud van de webpagina te controleren op naleving van de genoemde trefwoorden.

Enkele principes met betrekking tot metatags:

  • neem geen trefwoorden op die niet op uw pagina's voorkomen;
  • herhaal geen trefwoorden;
  • gebruik metatags voor het beoogde doel;
  • zorg ervoor dat de beschrijving en de lijst met trefwoorden voor elke pagina van de site verschillend zijn, rekening houdend met de inhoud.

beschrijving

De meeste zoekmachines geven de inhoud van het beschrijvingsveld weer (voorbeeld 1) bij het weergeven van zoekresultaten.

Als deze tag niet op de pagina staat, vermeldt de zoekmachine eenvoudigweg de eerste woorden die op de pagina zijn gevonden, die in de regel niet erg relevant zijn voor het onderwerp.

beschrijving

Website over HTML en website maken

trefwoorden

Deze metatag was bedoeld om trefwoorden te beschrijven die op de pagina verschijnen (voorbeeld 2). Maar als gevolg hiervan zijn de acties van mensen die op welke manier dan ook bovenaan de zoekmachines willen komen, nu in diskrediet gebracht.

Website over HTML en website maken

Voorbeeld 2: trefwoorden gebruiken

HTML, META, metatag, tag, zoekmachine

Trefwoorden kunnen worden weergegeven, gescheiden door spaties of komma's. Zoekmachines zullen de invoer zelf omzetten naar het formulier dat zij gebruiken.



Pagina's automatisch laden

Om na een bepaalde tijd automatisch een nieuw document te downloaden, gebruikt u de http-equiv="refresh" instructie (voorbeeld 3).

De browser begrijpt dat deze invoer 5 seconden wacht en vervolgens de nieuwe pagina laadt die is opgegeven in de URL-parameter, in dit geval een link naar de website.

Met deze metatag kunt u een omleiding naar een andere site maken. Als er geen URL is opgegeven, wordt de huidige pagina automatisch vernieuwd na het aantal seconden dat is opgegeven in het contentkenmerk.

Codering

De browser begrijpt dat deze invoer 5 seconden wacht en vervolgens de nieuwe pagina laadt die is opgegeven in de URL-parameter, in dit geval een link naar de website.

Om de browser te vertellen in welke codering de tekens op een webpagina voorkomen, moet u de parameter instellen



Als er geen codering is opgegeven, probeert de browser zelf te bepalen welk type tekens in het document wordt gebruikt en selecteert hij automatisch de benodigde codering.

Het is mogelijk dat de browser de taal van een webpagina niet altijd nauwkeurig herkent en in sommige gevallen Vietnamese codering voorstelt in plaats van Cyrillisch. Om deze reden is het beter om altijd de aangegeven regel op te nemen. Er zijn echter omstandigheden waarin het specificeren van de codering enige schade kan veroorzaken. De webserver gebruikt bijvoorbeeld automatisch gegevenstranscodering in KOI-8, en de browser converteert de tekst naar Windows-codering wanneer deze de parameter charset=windows-1251 tegenkomt. Dit resulteert in een dubbele verandering van karakters; het is niet gemakkelijk om dergelijke tekst te lezen. Gelukkig behoort een dergelijk probleem al tot het verleden; het kan in ieder geval eenvoudig worden geïdentificeerd en geneutraliseerd op serverniveau. Een van de meest voorkomende problemen waarmee een beginner wordt geconfronteerd Webmaster (en niet alleen beginners), dit problemen met codering op de site . Zelfs voor mij verschijnt het voortdurend bij het maken van websites " abracadabra "Maar gelukkig weet ik heel goed hoe ik dit probleem moet oplossen, dus ik heb binnen een paar seconden alles op orde gebracht. En in dit artikel zal ik proberen het je net zo snel te leren.

problemen met codering op de site oplossen Windows-1251 Het eerste dat het vermelden waard is, is dat alle problemen met het verschijnen van "abracadabra" verband houden met een discrepantie tussen de documentcodering en de codering die door de browser is ingesteld. Laten we zeggen dat er een document in zit , maar om de een of andere reden wordt de browser weergegeven UTF-8

. En de bron van een dergelijke discrepantie kan de volgende redenen zijn.

Eerste reden De metatag is onjuist geschreven inhoudstype

. Wees voorzichtig, het moet altijd de codering bevatten waarin uw document is geschreven.

Tweede reden Kladblok++ Het lijkt erop dat de metatag is geschreven zoals jij dat wilt en dat de browser precies weergeeft wat je wilt, maar om de een of andere reden zijn er nog steeds problemen met de codering. De boosdoener hier is vrijwel zeker dat het document zelf een andere codering heeft. Als je binnenwerkt , dan staat rechtsonder de naam van de codering van het huidige document (bijvoorbeeld ANSI , maar om de een of andere reden wordt de browser weergegeven). Als u een metatag invoert , dan staat rechtsonder de naam van de codering van het huidige document (bijvoorbeeld, en het document zelf is geschreven , maar om de een of andere reden wordt de browser weergegeven, voer vervolgens de conversie uit naar (via menu " Coderingen "en punt"").

Converteren naar UTF-8 zonder stuklijst

Derde reden

Vierde reden En tot slot is er de laatste populaire reden. Zorg er eerst voor dat al uw tabellen en velden in dezelfde codering zijn geschreven, die overeenkomt met de codering van de rest van de site. Als dit niet helpt, voer dan onmiddellijk na het verbinden in het script het volgende verzoek uit:

NAMEN INSTELLEN "utf8"

In plaats van " utf8" Er kan een andere codering zijn. Daarna zouden alle gegevens uit de database in de juiste codering moeten verschijnen.

Ik hoop dat ik in dit artikel op zijn minst heb uitgelegd 90% van de problemen houdt verband met het verschijnen van "brabbeltaal" op de site. Nu heb je in een mum van tijd te maken met zo'n populair en eenvoudig probleem als onjuiste codering.