J'ai un .php qui récupère le champ publish_up et l'écho. Mais il n’affiche pas les caractères spéciaux tels que é, è, û ... Au lieu de cela, je reçois un �
. J'ai mis ceci content="text/html; charset=utf-8"
mais cela ne résout pas le problème.
Merci beaucoup pour votre aide!
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
</head>
<body>
<?php
$oldLocale = setlocale(LC_TIME, 'en_US');
echo strftime("%a %d %b %Y", strtotime($jitem1->publish_up));
setlocale(LC_TIME, $oldLocale);
?>
</body>
</html>
Cela pourrait être dû à l'encodage du fichier. Vous pouvez définir le codage sur UTF-8
À l'aide d'un bon éditeur de texte tel que Notepad ++ ou en ligne de commande. Par exemple, dans les systèmes d'exploitation * nix:
iconv -f ascii -t utf-8 "test.php" -o "utf8.test.php"
Cela pourrait aussi être dû à votre encodage MySql. Vous pouvez ajouter ces lignes avant d'exécuter une requête (dans votre modèle):
$jdb1->execute("SET NAMES 'utf8'");
$jdb1->execute("SET CHARACTER SET utf8");
$jdb1->execute("SET SESSION collation_connection = 'latin1_general_ci'");
$jdb1
Est votre instance JDatabase.
Si des caractères étranges sont renvoyés, utilisez utf8_encode(strftime())
pour les caractères UTF-8
Sur la base de lien (Mise à jour 2) de Fari, voici la solution:
<?php $oldLocale = setlocale(LC_TIME, 'fr_FR');
$date_string = utf8_encode(strftime('%d %B %Y', strtotime($jitem1->publish_up)));
echo $date_string;
setlocale(LC_TIME, $oldLocale);
?>
On dirait que le codage de caractères correct n'est pas défini sur votre base de données. Pour le savoir, vérifiez le classement utilisé dans la base de données pour publish_up. Le classement correct à utiliser dépend de la langue utilisée par votre site Web, mais en général, utf8_general_ci fonctionnera pour la plupart des sites Web en anglais (apparemment, utf8_general_ci ne prend pas correctement en charge le codage UTF8 , donc si votre version de mysql prend en charge Si vous préférez utiliser utf8mb4 à la place.)
Pour vérifier la base de données, je vous recommande d'utiliser un programme tel que phpMyAdmin.