2
當使用money_format()
等函數時,我在PHP中遇到setlocale()
問題。PHP的setlocale()中的en_GB和en_GB.UTF8有什麼區別?
在我的本地主機上,這些功能只有在我的setlocale()
值爲en_GB
時纔有效。但是,在我的實時服務器上,只有當setlocale()
設置爲en_GB.UTF8
時,相同的功能纔會起作用。
所以我的問題是:什麼導致不同的要求?由於目前我的配置文件有一個髒的if/else
語句來查找它正在運行的服務器並動態指定setlocale()
值。
語言環境是由系統定義的常量。使用'locale -a'來查看允許的設置。在某種程度上他們是魔法價值。這是一個神祕的計劃,沒有建立/可靠的別名/回退標準。 – mario
我在終端(我的本地主機是Mac)運行'locale -a',發現Mac出於某種原因在'UTF8'位用連字符命名,所以我想要的值實際上是'en_GB.UTF-8'。我已經看過一個關於'setlocale()'的PHP文檔,現在在我的腳本中有這個:'<?php setlocale(LC_ALL,'en_GB_UTF8','en_GB.UTF-8'); ?>'。 –