0

我已经使用iso-8859-1编码创建了一个网站,我想用法语显示日期。

这是我用于测试的文件:

<!DOCTYPE html>
<html lang="fr">
    <head>
      <meta charset="ISO-8859-1"/>
    </head>
    <body>
      <?php setlocale(LC_ALL, "fr_FR.iso88591"); echo strftime("%A %d %B %Y."); ?>
    </body>
 </html>

当我打开这个文件时,我得到:Thursday 08 August 2013.而不是Jeudi 08 Août 2013.(法语)。

我已经尝试使用UTF-8它并且它可以正常工作,但这不是我想要的......

我检查了安装在我的服务器上的语言包,一切似乎都是正确的:

server$ sudo locale -a
C
C.UTF-8
français
french
fr_FR
fr_FR.iso88591
fr_FR.utf8
POSIX

如果您有解决此问题的任何想法,那将非常酷。

编辑:错别字更正!

4

3 回答 3

2

你有错别字。更改“setlocal”和“8895-1”

<!DOCTYPE html>
<html lang="fr">
    <head>
      <meta charset="ISO-8895-1"/>
    </head>
    <body>
      <?php setlocal(LC_ALL, "fr_FR.iso88951"); echo strftime("%A %d %B %Y."); ?>
    </body>
 </html>

分别为“setlocale”和“8859-1”。

<!DOCTYPE html>
<html lang="fr">
    <head>
      <meta charset="ISO-8859-1"/>
    </head>
    <body>
      <?php setlocale(LC_ALL, "fr_FR.iso88591"); echo strftime("%A %d %B %Y."); ?>
    </body>
 </html>
于 2013-08-08T14:43:00.097 回答
0

就像我在评论中指出的那样,它应该是setlocale,而不是 setlocal。

一个快速的谷歌搜索将我指向这个网站,这表明你应该这样做

setlocale(LC_ALL, "fr_FR.ISO-8859-1");

代替

setlocal(LC_ALL, "fr_FR.iso88951");

编辑 :

尝试这个:

<?php
setlocale(LC_ALL, "fr_FR.iso88591");
setlocale(LC_NUMERIC, 'C');
echo strftime("%A %d %B %Y.");
?>

我没有尝试过,但值得一试。

于 2013-08-08T14:48:30.643 回答
-1

代码中的错字(setlocal 应为 setlocale):

<?php setlocale(LC_ALL, "fr_FR"); echo strftime("%A %d %B %Y."); ?>

还要确保您的系统上有法语语言环境:

locale -a

查看可用的语言环境(unix)。

于 2013-08-08T14:49:41.780 回答