php - setlocale (LC\_ALL, 'en\_GB.UTF8') fungerer ikke på Windows

Indlæg af Hanne Mølgaard Plasc

Problem



Hvorfor returnerer setlocale(LC\_ALL, 'en\_GB.UTF8'); falsk på Windows Server 2003 R2 - Zend CE PHP 5.3.5?


Funktion i spørgsmålet: setlocale. [9]

Bedste reference


Fra PHP Manual:



  Returværdien af ​​setlocale() afhænger af det system, som PHP kører. Det returnerer præcis, hvad systemet setlocale returnerer.



Så i dit tilfælde returneres det falsk, fordi systemet returnerer falsk. Det er sandsynligt, at den lokale, du bruger, ikke er tilgængelig på dit system.


En liste over setlocale strenge understøttet af Windows er tilgængelig her. For engelsk engelsk vil du have eng, english-uk eller uk. Windows understøtter ikke multi-byte tegn sæt som UTF-8, men du vil nok ende med Windows-1252. [10]

Andre referencer 1


Jeg vil gerne tilføje, at problemet med Windows ikke understøtter utf-8 kan forbedres med noget som dette:


$str=strftime('\%a'); //for example
if(!mb\_check\_encoding($str,'utf-8')) $str=utf8\_encode($str);