Les guillemets simples montrant que le diamant en forme de point d'interrogation dans les navigateurs (pas de base de données ou PHP)
Je suis en train de travailler avec une page web dans laquelle j'ai passé le jeu de caractères iso-8859-1 à utf-8. Haut de la page se lit comme suit:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>[title of site]</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Je suis seulement en utilisant des caractères ASCII dans la page, et depuis l'encodage utf-8 supersets ASCII, ce devrait être bon. Cependant, une seule des citations dans le texte sont en train d'apparaître comme des points d'interrogation entouré de diamants noirs. J'ai vérifié ces sommes sont ASCII des guillemets simples (pas de guillemets).
J'ai lu beaucoup de en ligne qui décrit des solutions à ce problème qui impliquent PHP, magic quotes, base de données de configuration, etc. Cependant, c'est un plat de la page HTML qui n'est pas rendu par tous les programmes.
Aussi, beaucoup de ceux qui ont ce problème dit de passer à l'UTF-8 pour résoudre le problème. C'est exactement comment je introduit le problème.
Veuillez jeter un oeil à http://mch.blackcatwebinc.com/src/events.html de voir ce problème.
La source de la page n' pas ont ASCII des guillemets simples. Quelle que soit mettre le texte n'a changé en autre chose, si en effet ils sont ASCII des guillemets simples dans la source d'origine (ce dont je doute sincèrement).
OriginalL'auteur blackcatweb | 2012-08-03
Vous devez vous connecter pour publier un commentaire.
La seule citations en ASCII sont le guillemet simple '(0x27 ou 39) et des guillemets doubles " (0x22 ou 33). Ce que vous avez là est une 8-bits de codage qui met des guillemets à 145 (0x91) et 146 (0x92) appelé CP1252; c'est le standard 8 bits de l'europe Occidentale codant pour Windows. Si ce que vous voulez, c'est de l'UTF-8, vous avez besoin de les convertir en UTF-8, car il n'est pas UTF-8 valide; UTF-8 valide utilise plusieurs octets pour les caractères ci-dessus 127 (0x7F), et des lieux de l'ouverture et de la fermeture des guillemets à U+2018 et U+2019 respectivement.
OriginalL'auteur prosfilaes
Selon le W3C, la
meta charset
De http://www.w3.org/International/questions/qa-html-encoding-declarations#metacontenttype
Donc, je pourrais essayer de placer le
meta
tag au-dessus de latitle
.Aussi, comme mentionné dans la première réponse @user1505373,
UTF
est toujours en majuscule et il n'y a pas d'espace après la=
dans les exemples que j'ai vu.OriginalL'auteur Jason Gennaro
Votre code source est pas enregistré en UTF-8, mais
Latin1CP1252, et ces citations sont pas de simples citations, mais U+2019 DROIT des GUILLEMETS SIMPLES (codé en Latin1). Enregistrez le fichier source au format UTF-8 et ça marchera.D'accord, quel qu'il soit, il n'est pas de l'UTF-8, même si elle est déclarée en tant que UTF-8. Je viens de passer le navigateur pour Latin-1 et qu'il s'affiche correctement, ce qui est tout simplement un cas classique de la déclaration de l'encodage et de l'encodage réel n'étant pas le même.
CP1252 a été si souvent utilisé pour le Latin-1 que la plupart des navigateurs traiter Latin-1, comme si c'était CP1252, HTML5 et mandats qu'ils font.
OriginalL'auteur deceze
La solution la plus simple est de changer l'encodage UTF-8 pour windows-1252 dans le
meta
tag. Cela fonctionne, parce que le serveur n'annonce aucune encodage dans leContent-Type
en-tête, afin que les navigateurs et les autres clients d'utiliser celui qui est spécifié dans unemeta
tag.Le nom de windows-1252 est le préféré MIME nom de la 8-bits de Windows codage Latin-1, aussi connu comme cp1252 et quelques autres noms (souvent présenté à tort comme “ANSI”).
@Deceze l'explique, l'encodage des données est windows-1252, pas en UTF-8. Vous pouvez également modifier l'encodage UTF-8 par l'enregistrement du fichier de commande dans votre logiciel d'authoring. Mais ce qui importe vraiment, c'est que la déclaration de l'encodage correspond à la réalité.
Encore une autre possibilité est d'utiliser des “évasions” pour l'apostrophe, comme
’
. Ils travaillent de manière indépendante de l'encodage, mais ils font de la source code moins lisible.OriginalL'auteur Jukka K. Korpela
La seule différence que je vois entre le tag et la une sur le site que je suis en train de travailler sur l'espace après le point-virgule et que utf est minuscule sur le vôtre. Essayer de capitaliser UTF.
-1 casse n'est pas importante ici.
OriginalL'auteur user1505373
Tous les caractères ASCII imprimables ont leurs équivalents en entités HTML Code. Certains de ces personnages sont généralement pris en charge par la plupart des OS de polices de caractères, certains sont classés en tant que Symboles qui nous apportent à votre problème de rendu.
Ce que vous avez soi-disant il y a un de clôture de devis unique, et pour l'obtenir, à juste titre, imprimée, vous devez l'utiliser sur l'entité du code, ou ’ respectivement.
Si il s'avère être un guillemet simple ouverture, alors vous devriez utiliser ‘ au lieu de cela.
Remarque, il n'y a pas d'Entité HTML Nom pour les deux
ASCIIcaractères (et certains plus) donc, vous êtes requis de refuser l'entité code de variante.Si vous avez un 21ème siècle est un nom, je serai heureux de mise à jour de la réponse ci-dessus. S'il vous plaît, il suffit de ne pas dire de l'apostrophe.
C'est un guillemet simple fermeture. Il peut être encodé en CP1252 ou Unicode ou probablement plusieurs autres encodages de caractères. Ce n'est pas l'ASCII.
S'il vous plaît ne recommandons pas d'utiliser des entités HTML pour résoudre encodage des disparités.
OriginalL'auteur Xhezairi