Encodage utf16 chrome vs firefox
Bonjour,
La sauvegarde d'une page sous FireFox me donne des caractères utf16 sauvés pour chaque caractère sous la forme &#+code+; code étant une chaine de 4 chiffres 0-9.
Cette forme, ennuyeuse au 1é abord, est en fait bien pratique et me simplifie énormément le traitement que je fais derrière.
En revanche, la sauvegarde faite avec Chrome se fait avec le caractère unicode écrit tel que le caractère unicode apparait dans le navigateur :
Σ est sauvegardé sous Chrome par "Σ", et sauvegardé sous FireFox par "Σ ;" (je rajoute un blanc ici, sinon le Σ s'affiche Σ dans le forum)
Comment puis-je transformer un texte contenant des ΣΣΣΣΣ par un texte contenant des Σ ; Σ ; Σ ; Σ ; Σ ; ?
C'est probablement basique de chez basique, mais je ne trouve aucune explication simple dans les pages d'aide fournies par les uns et par les autres.
Merci par avance pour votre aide.
Petit bout de code pour obtenir ce que vous désirez
Bonjour,
Lorsque je regarde le résultat que vous attendez, j'ai l'impression que vous désirez convertir de l'UNICODE vers UTF16.
En .NET voici un petit bout de code que vous pouvez tester :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
string utf16String = ""; // Mettre les symbôles sommes ici
string unicodeString;
// Transformation de UTF16 vers unicode
StringBuilder sb = new StringBuilder();
for (int cpt = 0; cpt < utf16String.Length; cpt++)
{
// On ajoute &#votre caractère au format unicode puis ' ';' '
// La concaténation de chaîne dans un StringBuilder est plus rapide et consomme moins de mémoire
sb.AppendFormat("&#{0} ; ", char.ConvertToUtf32(utf16String, cpt));
}
unicodeString = sb.ToString();
Console.WriteLine(unicodeString);
Console.ReadKey(); |
Si vous testez ce bout de code, vous obtenez bien le résultat que vous attendez. A voir si cela correspond bien à vos attente mais d'après ce que vous notez, on obtient bien :
Σ ; Σ ; Σ ; Σ ; Σ ;
Bizarrement par contre, si sous Chrome je sauvegarde cette page web et que je la lis avec le code suivant :
Code:
File.ReadAllText("C:\\temp\\test.html", Encoding.Default)
J'ai directement les codes Σ ; qui s'affichent... Tenez-moi au courant et n'hésitez pas à me mettre un fichier d'exemple si vous voulez de l'aide.
Société: Nicolas Giannone SPRL
Email: nicolas.giannone.sprl@gmail.com