Publish_upフィールドを取得してエコーする.phpがあります。しかし、é、è、ûなどの特殊文字は表示されません...代わりに�
。これを設定しましたcontent="text/html; charset=utf-8"
しかし、それは問題を解決しません。
あなたの助けをありがとう!
<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>
ファイルのエンコードが原因である可能性があります。 Notepad ++などの優れたテキストエディタまたはコマンドラインを使用して、エンコーディングを_UTF-8
_に設定できます。 * nix OSの例:
_iconv -f ascii -t utf-8 "test.php" -o "utf8.test.php"
_
また、MySqlエンコーディングが原因である可能性もあります。 (モデル内で)クエリを実行する前にこれらの行を追加できます。
_$jdb1->execute("SET NAMES 'utf8'");
$jdb1->execute("SET CHARACTER SET utf8");
$jdb1->execute("SET SESSION collation_connection = 'latin1_general_ci'");
_
_$jdb1
_はJDatabaseインスタンスです。
Fariの link (Update 2)に基づくと、解決策は次のとおりです。
<?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);
?>
データベースに正しい文字エンコーディングが設定されていないようです。確認するには、publish_upのデータベースで使用されている照合を確認してください。使用する正しい照合は、ウェブサイトが使用する言語によって異なりますが、一般にutf8_general_ciはほとんどの英語のウェブサイトで機能します(どうやらutf8_general_ci すべてのUTF8コーディングを適切にサポートしていない 。代わりにutf8mb4を使用することをお勧めします。)
データベースを確認するには、phpMyAdminなどのプログラムを使用することをお勧めします。