Nous avons un processus dans lequel XML nous est transféré via ESMTP dans un corps de l'e-mail. Le jeu de caractères du corps de l'e-mail est défini en tant que ISO-8859-1 et aucun codage n'est spécifié pour le code XML. Selon le protocole, la valeur par défaut est UTF-8.Conflit de charset de protocole, ESMTP vs. XML dans un corps de l'e-mail
Le problème est notre analyseur XML est de lancer une exception lorsqu'il rencontre le caractère ® parce qu'il pense qu'il est l'analyse syntaxique UTF-8, et le caractère ® dans UTF-8 est de 2 octets, et non 1 comme dans ISO-8859-1.
- Si nous supposons que le corps est ISO-8859-1 et ainsi remplacer les encodage XML (UTF-8)? Plus subjectivement, est l'email envoyé incorrectement, et serait-il préférable pour nous d'essayer d'interpréter comme UTF-8 de notre côté ou demander à celui qui l'envoie de spécifier correctement et de manière cohérente l'encodage?
est ici un corps e-mail de l'échantillon avec XML:
Delivered-To: ...
Received: ...
Received: ...
Return-Path: ...
Received: ...
Received-SPF: ...
Authentication-Results: ...
Received: ...
Thread-Topic: ...
From: ...
To: ...
Subject: ...
Date: ...
Message-ID: ...
MIME-Version: 1.0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
X-Mailer: Microsoft CDO for Windows 2000
Content-Class: urn:content-classes:message
Importance: normal
Priority: normal
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.4325
<?xml version="1.0"?>
...
<comments>Super Widget®</comments>
...