2010-02-04 32 views
2

J'ai une page et son encodage est UTF-8 et si j'essaie d'exécuter ce code dans un système unix tout semble bien, mais quand je tente de courir dans Windows (7) certains caractères chromes regarde question marquer (). Comment pouvez exécuter le code à la fois deux des deux systèmes (sans utiliser iconv).Unicode setlocale et strftime échoue à windows

header('Content-Type: text/html; charset=UTF-8'); 
setlocale(LC_ALL, 'turkish'); 
echo strftime("%d %B %Y, %H:%M"); 
+0

La seule différence le serveur? Pas le navigateur, le programme FTP ou l'éditeur qui l'enregistre? Je sais que cela semble étrange, mais si votre éditeur est défini dans un jeu de caractères différent, ou si le charset par défaut du navigateur peut l'affecter. C'est parfois douloureux les fesses. – jerebear

+0

Oui, seule la différence est le serveur. Les types de codage pour tous les fichiers sont les mêmes. – mTuran

Répondre

3

Pour ceux qui ont des problèmes similaires sur Linux (cela peut aussi fonctionner pour Windows mais pas sûr).

Oui, il y a 'turc' mais il y a aussi 'tr_TR.utf8'. Si vous utilisez 'tr_TR.utf8', vos problèmes seront probablement éliminés. La même chose s'applique également au «grec». Au lieu de cela, utilisez 'el_GR.utf8'

Sur Linux, vous pouvez vérifier la liste des paramètres régionaux pour trouver les paramètres appropriés pour votre site.

locale -a 

liste est trop longue et vous ne pouvez pas voir toutes les langues, donc soit vous pouvez simplement le jeter dans un fichier, puis ouvrez le fichier pour vérifier.

locale -a > locale.txt 
vi locale.txt 

ou faire locale -a | grep LanguageCode pour une langue spécifique

locale -a | grep tr 
9

Microsoft Windows ne prend pas en charge les paramètres régionaux UTF-8. Donc, si vous fournissez des paramètres régionaux en turc, cela afficherait une page de code de 8 bits qui permet la représentation d'un langage spécifique.

Par exemple pour les paramètres régionaux hébreu il pic codepage-1255, pour le turc, il serait probablement 1254.

Donc, vous ne pouvez pas utiliser cette plate-forme sous MS Windows.

Comment exécuter le code à la fois les deux systèmes (sans utiliser iconv).

Utilisez probablement un codage non-utf8 sous MS Windows.