使用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