Pas du tout ! c'est de l'UTF-16 escapé ! La syntaxe \uNNNN en JSON indique
un codet 16 bits. Le codage UTF-8 escapé serait \xNN\xNN si c'était codé en
UTF-8 sur 2 octets. Si le point de code est hors du BMP, on aurait
\U000NNNNN pour indiquer le point de code entier, ou \uDNNN\uDNNN pour
coder les deux demi-codets 16 bits.

JSON en lui-même n'indique pas quel est le codage utilisé, il doit juste
supporter l'ASCII pour sa propre syntaxe mais les données transportées
(dans les chaines) peuvent être dans un codage arbitraire, y compris même
ne pas être du texte; à la base il y a \xNN pour cela, et \uNNNN est une
extension indiquant qu'on indique un codet 16 bits dont la conversion en
8-bits est dépendante des codages 8-bit et 16-bits supportés par
l'application mais en général \uNNNN suppose que c'est de l'UTF-16 et que
l'autre codage (utilisé par \xNN) est UTF-8.

Mais JSON vient à l'origine de Javascript dont le codage natif interne est
UTF-16 (mais le codage externe 8-bits n'est pas toujours UTF-8, il peut
varier selon le protocole par exemple avec indication d'un media-type MIME
avec HTTP).
Sinon il n'est pas nécessaire d'utiliser cette syntaxe. Même pour les
caractères ASCII faisant partie de la syntaxe JSON (sauts de lignes,
guillemets, ou contrôles comme le nul) il est plus pratique et plus court
d'utiliser \r, \n, \", \t.

Il faut aussi savoir qu'au début OSM n'a pas toujours eu sa base de données
codée en Unicode avec UTF-8 : il y a eu un début avec ISO8859-1 mais
parfois du "mojibake" produit avec certains navigateurs webs russes ou
est-européens sui utilisaient d'autres codages ISO8859-* ou pages de code
Windows, et même du codage MacOS. Et on trouve encore dans la base de
données des textes provenant d'éditeurs mal réglés qui envoient autre chose
que de l'UTF-8 (le plus souvent du Windows-1252 mais on a encore des traces
au Japon de textes codés en JIS!).

La base OSM n'a jamais réellement forcé le codage, il aurait fallu filtrer
massivement les données existantes et renforcer le protocole (mais cela
aurait banni certains vieux éditeurs incompatibles). Encore aujourd'hui on
peut envoyer du JIS ou un codage chinois GB ou coréen HKCS et rien ne s'y
oppose.

UTF-8 s'est juste imposé parce que les éditeurs actuels bien supportés s'y
sont tous mis ! Mais je trouve encore des données envoyées par un vieux
JOSM sur Mac qui envoient du MacRoman ! Et certains utilisent encore
Potlatch-1 avec de vieux navigateurs web et de vielles versions de Flash
qui ne gèrent pas correctement l'UTF-8 dans les données qu'ils manipulent
dans Potlatch et qu'ils envoient ensuite au serveur... On en trouve même en
France !



Le 29 mai 2016 à 20:25, Christian Quest <cqu...@openstreetmap.fr> a écrit :

> C'est tout à fait normal en json... c'est de l'UTF-8 escapé.
>
> Le 29 mai 2016 à 14:19, JB <jb...@mailoo.org> a écrit :
>
>> Bonjour,
>>
>> Je n'ai pas vu passer cette question : Est-ce que c'est moi qui me
>> débrouille mal, ou bien l'api de la Ban en reverse ne gère pas les
>> caractères spéciaux ?
>>
>> Par exemple, pour la requête :
>> http://api-adresse.data.gouv.fr/reverse/?lon=2.4441661&lat=48.7897578,
>> j'ai la réponse :
>>
>> {"limit": 1, "attribution": "BAN", "version": "draft", "licence": "ODbL
>> 1.0", "type": "FeatureCollection", "features": [{"geometry": {"type":
>> "Point", "coordinates": [2.444308, 48.790001]}, "properties": {"street":
>> "Rue Andr\u00e9 Maurois", "label": "2 Rue Andr\u00e9 Maurois 94000
>> Cr\u00e9teil", "distance": 28, "context": "94, Val-de-Marne,
>> \u00cele-de-France", "id": "94028_0068_2f0620", "citycode": "94028",
>> "name": "2 Rue Andr\u00e9 Maurois", "score": 0.9999996646758574,
>> "postcode": "94000", "housenumber": "2", "city": "Cr\u00e9teil", "type":
>> "housenumber"}, "type": "Feature"}]}
>>
>> avec les morceaux choisis : 2 Rue Andr\u00e9 Maurois 94000 Cr\u00e9teil.
>>
>> JB.
>>
>>
>> _______________________________________________
>> Talk-fr mailing list
>> Talk-fr@openstreetmap.org
>> https://lists.openstreetmap.org/listinfo/talk-fr
>>
>
>
>
> --
> Christian Quest - OpenStreetMap France
>
> _______________________________________________
> Talk-fr mailing list
> Talk-fr@openstreetmap.org
> https://lists.openstreetmap.org/listinfo/talk-fr
>
>
_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr

Répondre à