J'ai un script PHP appelé:
http://cyber-flick.com/apiMorpho.php?method=getMorphoData&Word=kot
Cela affiche des données en texte brut:
Cz��� mowy: rzeczownik
Przypadek: Dope�niacz
Rodzaj: şe�ski
Liczba: mnoga
Comme vous pouvez le constater à la place des caractères appropriés, il y a des "buissons". Ce que je voudrais faire, c’est d’afficher ceci d’une manière qui permette aux gens de voir dans le navigateur les caractères UTF-8 appropriés.
Vous pouvez l'encapsuler dans des balises HMTL et le définir au format méta UTF-8, mais comme les données reçues à partir de ce script seront traitées ultérieurement, je ne souhaite pas utiliser de balises HTML, il ne devrait s'agir que de résultats en texte brut.
Donc, y a-t-il un moyen d'informer le navigateur que ce fichier est au format UTF-8 sans utiliser de balises méta?
PS Le fichier est encodé en UTF-8 et si je modifie manuellement l’encodage du jeu de caractères dans mon navigateur en UTF-8, il affiche ok, mais ce que je veux accomplir, c’est que personne ne soit obligé de le faire.
header('Content-type: text/plain; charset=utf-8');
Notez également que la définition d’un en-tête sur "text/plain"
tous les caractères html et php (en partie) imprimeront les caractères à l’écran en tant que TEXT et non en HTML. Soyez donc conscient du possible risque d’analyse HTML lors de l’utilisation du type de texte plain
.
En utilisant:
header('Content-type: text/html; charset=utf-8');
Peut renvoyer HTML et PHP également. Pas seulement du texte.
PHP, par défaut, renvoie toujours l’en-tête suivant: "Content-Type: text/html" (not not no charset), vous devez donc utiliser
<?php header('Content-type: text/plain; charset=utf-8'); ?>
Vous devez spécifier le codage des données. Soit en méta, soit dans les en-têtes
header('Content-Type: text/plain; charset=utf-8');
Essayez de cette façon header('Content-Type: text/plain; charset=utf-8');
Fichier HTML:
<head>
<meta charset="utf-8">
</head>
Fichier PHP:
<?php header('Content-type: text/plain; charset=utf-8'); ?>