编程语言
首页 > 编程语言> > 使用PHP以非ASCII字符输出日期

使用PHP以非ASCII字符输出日期

作者:互联网

我正在尝试以繁体中文输出日期.

我将日期作为Unix时间戳记(例如:“ 1467244800”).

我正在执行以下操作:

<?php
setlocale (LC_TIME, "zh_TW");
echo strftime("%e %B %Y", $timestamp );
?>

我得到的输出是Unicode“未定义”字符:

30 ���� 2016
17 �T�� 2016
18 �Q�G�� 2015 

谁能告诉我我在做什么错?

我的HTML标头包含:

<html lang="zh-TW">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

页面上我其余的中文内容都很好地输出.如果查看页面源,则会看到:

<span>最新消息</span>
<span class="pipe">18 �Q�G�� 2015</span>

只是strftime()日期显示为“未定义”字符: …

感谢您的关注…

解决方法:

语言环境不仅使用不同的语言,而且使用不同的编码.默认的zh_TW语言环境可能会使用一些中文编码,而您想要的是UTF-8.因此,请使用语言环境的UTF-8版本:

setlocale(LC_TIME, 'zh_TW.UTF-8');

这取决于您的特定系统及其上安装的语言环境.在命令行上检查:

$locale -a
...
zh_TW
zh_TW.Big5
zh_TW.UTF-8

为了更加兼容跨平台,您可以尝试以下几种语言环境:

setlocale(LC_TIME, 'zh_TW.UTF-8', 'zh_TW.utf8', 'zh_TW');

标签:strftime,non-ascii-characters,chinese-locale,php,utf-8
来源: https://codeday.me/bug/20191012/1897470.html