2010-11-26 28 views

Répondre

2

Ce n'est pas immédiatement clair ce que vous voulez dire quand vous dites « à ö ». Si vous demandez comment le convertir en un codage différent, une approche générale consiste à utiliser la fonction iconv. 014D est le UCS-2 (unicode) pour la fonction souhaitée donc, si vous avez une chaîne contenant les octets 014D, vous pouvez utiliser

iconv('UCS-2', 'UTF-8', $s) 

convertir UCS-2 en UTF-8. De même si vous voulez convertir un encodage différent - bien que vous devez être conscient que tous les encodages n'incluent pas le caractère que vous utilisez. Vous verrez dans la documentation de iconv que l'option // TRANSLIT peut aider dans ce cas. Notez que iconv prend une séquence d'octets donc, si vous avez réellement une chaîne contenant une barre oblique, alors un u, puis un 0 etc ... vous devrez d'abord le convertir dans la séquence d'octets.

+0

@borrible - Ne semble pas correct, vous voulez re-tester? – ajreal

+0

@ajreal - assurez-vous de tester une séquence d'octets UCS-2. – borrible

+0

@borrible - i essayez le code affiché, ne semble fonctionner que si le '$ s = « \ u014D »,', il converti en caractères chinois invalide – ajreal

1

Si vous avez les caractères d'échappement dans la chaîne, vous pouvez utiliser une instruction exec désordre.

$string = '\\u014D'; 
exec("\$string = '$string'"); 

De cette façon, la séquence d'échappement Unicode doit être reconnu et interprété comme un caractère unicode Lorsque la chaîne est analysée.

Bien sûr, vous ne devriez jamais utiliser exec sauf si absolument nécessaire.