作者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/m.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