SAVON d'ERREUR: Codage: chaîne de ... n'est pas une chaîne utf-8
Salut j'ai un service web est construit en utilisant le Zend Framework. Une des méthodes est destiné à envoyer des informations à propos d'une commande. J'ai rencontré quelques problème de codage. L'une des valeurs retourné contient les éléments suivants:
Jaime Torres Bodet #322-Un Colonel Lomas de Santa María
Le webservice est de retour à la panne suivante:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Server</faultcode>
<faultstring>SOAP-ERROR: Encoding: string 'Jaime Torres Bodet #322-A Col. Lomas de Santa Mar\xc3...' is not a valid utf-8 string</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Comment dois-je aller sur ce problème?
Grâce
- Le problème était dû à une chaîne tronquée par la base de données. Le terrain a été mis à VARCHAR(50) et il tronquée exactement au milieu de la valeur codée. Incroyable lol.
Vous devez vous connecter pour publier un commentaire.
Aujourd'hui, je rencontre le même problème - le code qui a causé le problème était:
changer substr à mb_substr semble résoudre le problème:
Que sur modifier les paramètres d'encodage:
SERVEUR:
CLIENT:
... puis la conversion est faite automatiquement en UTF-8, j'ai eu le problème similaire, donc cela m'a aidé, donc c'est testé
Le problème est que í != j'. Essayez de convertir votre chaîne de caractères UTF-8 avant de l'utiliser dans une requête. Il peut ressembler à ça:
Voir http://php.net/iconv
Les réponses ci-dessus pour m'amener à essayer:
qui a également résolu l'erreur pour moi.
Référence: utf8_encode()
J'ai résolu le problème comme ceci en utilisant mb_convert_encoding avec array_walk_recursive à marcher dans mon POST paramètres, nommé $params (tableau).
C'est peut-être utile pour vous:
J'ai découvert que dans mon cas pas de l'encodage des chaînes était le problème, mais que le fichier lui-même n'a pas été enregistré en UTF-8. Même explicite d'enregistrement avec l'encodage UTF-8 n'a pas aidé.
Pour moi, il a travaillé pour insérer un commentaire avec un caractère UTF-8 comme
//Å