Comment faire fonctionner json_encode () avec ISO-8859-1 (åäö)
json_encode()
ne fonctionnent pas pour moi quand je suis à l'aide de åäö. Pourquoi? Et comment puis-je le faire fonctionner?
La php
:
echo json_encode($arr);
La javascript
:
var theResponse = JSON.parse(xmlHttp.responseText);
Quand je alert()
la réponse, et la réponse contient å, ä ou", la réponse est = NULL
S'il vous plaît, aidez-moi...
source d'informationauteur Johan
Vous devez vous connecter pour publier un commentaire.
Il est dit dans le
json_encode()
de la documentation:Vous devez le convertir en utf-8 avec iconv ou mbstring premier.
Que Greg a mentionné, j'ai eu à coder åäö à
UTF-8
. Mais je n'ai pas utiliser iconv ou mbstring. Quand jeutf8_encode()
toutes les valeurs avant de mettre les valeurs à laarray
le problème a été résolu.Cette fonction sera de voter pour le type de données correct pour la sortie JSON et utf8_encode les cordes.
JSON définit les chaînes Unicode!
JSON Définition
Vous devez coder vous ISO vers UTF-8
Vieille question, mais pensé que je l'avais mis ça ici au cas où quelqu'un doit se connecter à des données à l'aide json_encode mais garder les données intactes, intact pour une inspection plus tard.
Vous pouvez coder les données brutes à l'aide de
base64_encode
puis il va travailler avecjson_encode
. Plus tard, après l'exécution dejson_decode
vous pouvez décoder la chaîne avecbase64_decode
vous obtiendrez les données d'origine non modifié.À l'aide de la méthode standard lors de la lecture de MySQL:
L'encodage peut être fait en utilisant les suivantes:
La
if is_null
doit être inclus afin que les champs null (par exemple, les champs DateTime) restent nulles dans la sortie.La
$data
(dans mon cas) est un tableau avec des valeurs de texte comme ISO-8859-1. L'astuce ci-dessous prépare$data
pour être utilisé avecjson_encode
.