php json_encode() afficher la valeur null à la place du texte
Je suis de la lecture à partir de la base de données avec quelques textes en hébreu et en essayant de json_encode
.
si je print_r
les résultats que j'obtiens:
Array
(
[0] => Array
(
[value] => 88
[text] => כיתה א'
[parent_id] => 1
[level] => 1
)
[1] => Array
(
[value] => 89
[text] => כיתה ב'
[parent_id] => 1
[level] => 1
)
[2] => Array
(
[value] => 91
[text] => כיתה ג'
[parent_id] => 1
[level] => 1
)
)
tandis que le json_encode montre:
[{"value":"88","text":null,"parent_id":"1","level":"1"},{"value":"89","text":null,"parent_id":"1","level":"1"},{"value":"91","text":null,"parent_id":"1","level":"1"}]
je pense que c'est parce que mon texte à partir de la base de données contient une ( ' ).
essayé plusieurs combinaison de stripslashes ou real_escape_string aucun ne l'a aidé.
Ce n'est pas le
Ce codage de caractères que vous utilisez? Le problème définitivement semble être avec les disparus", on dirait que vous devrez nettoyer les données de la db par l'encodage en UTF-8
json_encode ne fonctionne qu'avec des chaînes utf-8 selon les docs. vérifiez la sortie de la
Ce n'est certainement encodable: codepad.org/Q6oKBDFg
double possible de json_encode est de retour NULL?
'
devis. Il est plus que probable que votre encodage de texte n'est pas de l'UTF-8. Ou quel jeu de caractères ne les tables de base de données?Ce codage de caractères que vous utilisez? Le problème définitivement semble être avec les disparus", on dirait que vous devrez nettoyer les données de la db par l'encodage en UTF-8
json_encode ne fonctionne qu'avec des chaînes utf-8 selon les docs. vérifiez la sortie de la
json_last_error()
. php.net/json-last-error. utf8 encoder vos chaînes avant d'appeler json_encode.Ce n'est certainement encodable: codepad.org/Q6oKBDFg
double possible de json_encode est de retour NULL?
OriginalL'auteur eric.itzhak | 2011-11-15
Vous devez vous connecter pour publier un commentaire.
json_encode
attend de chaînes de caractères dans les données devant être codé en UTF-8.Les convertir en UTF-8 si elles ne sont pas déjà:
Oui, c'est JSON valide. Si vous analysez de nouveau, l'Unicode échappe sera associé à la appropriée des chaînes UTF-8. Si vous souhaitez que le JSON ne pas contenir de ces évasions, donner la
JSON_UNESCAPED_UNICODE
option pourjson_encode
(uniquement en php 5.4+). Notez que l'Unicode échapper permet à votre JSON à parcourir par le biais de 8bit-opaque canaux (c'est à dire des programmes qui ne sont pas de traiter correctement l'encodage). Vous perdez lorsque vous spécifiezJSON_UNESCAPED_UNICODE
.Merci phihag! vous êtes un épargnant de vie 🙂
OriginalL'auteur phihag
Meilleur et le plus rapide de la solution que j'ai trouvé était dans le PHP de Référence lui-même, par Sam Barnum
OriginalL'auteur marquito
ou
OriginalL'auteur ouzza
Essayer
json_encode($string, JSON_UNESCAPED_UNICODE);
(uniquement pour PHP v5.4.0+ - voir docs).header('Content-Type: application/json; charset=utf-8');
OriginalL'auteur Crontab
Cette fonction récursive va changer les valeurs null " chaîne vide. Lors de l'appel de json_encode($your_array) à json_encode(change_null($your_array));
OriginalL'auteur Metin Erbek
L'un de la manière la plus simple est de DÉFINIR le jeu de caractères pour MySQL query. Si vous souhaitez définir le même jeu de caractères pour toutes vos requêtes, puis il suffit d'ajouter la ligne suivante dans votre configuration ou connexion de base de données de fichier.
Si vous voulez juste sur des requêtes spécifiques, alors il suffit d'utiliser cette juste avant l'exécution de vos requêtes
OriginalL'auteur Muhammad Tanweer