Caractères cyrilliques dans PHP json_encode
Je suis en train de coder l'alphabet Cyrillique UTF-8 tableau de chaîne JSON à l'aide de php, la fonction json_encode. L'exemple de code ressemble à ceci:
<?php
$arr = array(
'едно' => 'първи',
'две' => 'втори'
);
$str = json_encode($arr);
echo $str;
?>
Il fonctionne très bien mais le résultat du script est représentée sous la forme d'
{"\u0435\u0434\u043d\u043e":"\u043f\u044a\u0440\u0432\u0438","\u0434\u0432\u0435":"\u0432\u0442\u043e\u0440\u0438"}
qui fait 6 caractères pour chaque caractère Cyrillique. Est-il un moyen pour obtenir les caractères d'origine de paires clé/valeur au lieu de codé?
source d'informationauteur AquilaX
Vous devez vous connecter pour publier un commentaire.
Ne pouvez-vous pas utiliser JSON_UNESCAPED_UNICODE constante ici?
J'ai trouvé ceci dans le code de Zend framework:
http://framework.zend.com/svn/framework/standard/trunk/library/Zend/Json/Decoder.php
Prendre un coup d'oeil à la fonction decodeUnicodeString ( ligne 474 ):
Il est statique, et vous pouvez extraire facilement - il suffit de remplacer la ligne:
avec:
Pas une solution idéale, mais a fait le travail pour moi :o)
L'utilisation de cette solution a fonctionné pour moi avec le Latin et l'alphabet Cyrillique, avec PHP 5.5
Il a travaillé avec http://pear.php.net/pepr/pepr-proposal-show.php?id=198
Avec nasty bypass JSON.php les lignes 298..
Merci!
Il ressemble de PHP dans
json_encode
ne fonctionne qu'avecUTF-8
et pas d'autres cloches et de sifflets pour modifier la façon dont il fonctionne par rapport à l'encodage.J'ai trouvé Un tout à fait juste et équilibrée de la comparaison de php, json bibliothèques sur Google. Il pourrait vous aider. Vous pourriez essayer une autre bibliothèque basée sur les tables ici, si possible. Il existe d'autres bibliothèques PHP répertoriés au json.org que vous pouvez expérimenter avec.
J'avais le même problème pour la turquie ... en effet nous n'avons pas à faire quelque chose navigateurs automatiquement convertit en JS blocs de code. Donc, le plus simple moyen de leur décodé est de les amener à l'aide de javascript. (Ajax etc...)
Json-encode avec les caractères non ascii ?
C'est une très vieille question, mais je ne pense pas qu'il a été répondu correctement.
utiliser quelque chose comme ceci: