作者kovenkoven (小沃)
看板PHP
标题[请益] PHP7中时间使用中文输出问题
时间Thu Jan 25 12:02:27 2018
目前安装装了一套开源的系统,使用apache + php7
发现在格式化日期输出时年月日等等的中文会变成简体字导致部份页面出现乱码
追踪後发现使用setlocale设置cht会直接输出为简体,导致出现乱码
然而在另外一台php5的机器中使用cht便会正常输出繁体中文
测试如下
setlocale(LC_TIME,"cht");
$date = mktime(0, 0, 0, 1, 1, 2018);
echo strftime("%B", $date);
在php5会显示一月,php7则是乱码
请问有人遇到类似情形吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.135.11.176
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1516852950.A.8D7.html
1F:推 LPH66: 用 "zh_TW" 呢? 01/25 12:22
2F:→ LPH66: 我其实有点好奇 "cht" 是怎麽来的... 01/25 12:31
3F:→ LPH66: 三字母的语言代码看起来像是 ISO 639-2, 不过那里没有 cht 01/25 12:31
4F:→ LPH66: 那里的中文是 chi 或 zho, 而且是指整个中文 01/25 12:31
5F:→ LPH66: 现在要指繁体中文一般是後缀地区代码做区分 (像上面的 _TW) 01/25 12:35
我再测试後发现windows server 2012 + php5的机器中
使用cht可以正常显示,zh-tw反而无法辨识
而windows 10 + php7的机器则相反
至於cht是该开源软体中有使用多语系
取得系统语言後若作业系统为windows则将语系代码做转换
依据是利用以下资讯
https://www.microsoft.com/resources/msdn/goglobal/default.mspx
目前暂时的解决是将转换的部份取消掉
想请问是否在新的系统下已经不需要这个转换步骤了?
※ 编辑: kovenkoven (140.135.11.176), 01/25/2018 13:47:29
6F:→ lusaka: 请问你是用哪套开源,这样比较不会隔空抓药 01/25 17:24
7F:→ kovenkoven: MRBS 01/26 04:56