Convertir les caractères UTF-8 en ISO-8859-1 manuellement

J'ai le caractère "...". Si je regarde dans cette UTF-8 tableau je vois qu'il a la valeur hexadécimale F6. Si je regarde dans le Tableau Unicode je vois que "ö" a les indices E0et 16. Si j'ajoute les deux-je obtenir la valeur hexadécimale du code de point de F6. C'est la valeur binaire 1111 0110.

1) Comment puis-je obtenir à partir de la valeur hexadécimale F6 les indices E0 et 16?
2) je ne sais pas comment venir à partir de F6 pour les deux octets C3 B6 ...

Parce que je n'ai pas encore eu les résultats, j'ai essayé d'aller dans l'autre sens. "ö" est représenté dans la norme ISO-8859-1 "ö". Dans le UTF-8 tableau je peux voir que "Ã" a la valeur décimale 195 et "¶" a la valeur décimale 182. Converti bits c'est 1100 0011 1011 0110.

Processus:

  1. Regarder dans un table et obtenir de l'unicode pour les caractères "ö". Calculé à partir des indices E0 et 16 vous obtenez l'Unicode U+00F6.
  2. Selon l'algorithme posté par wildplasser vous pouvez calculer le codés en UTF-8 valeur C3 et B6.
  3. Dans la forme binaire, vous obtenez 1100 0011 1011 0110 qui correspond aux valeurs décimales 195 et 182.
  4. Si ces valeurs sont interprétées comme des ISO 8859-1 (1 octet), puis vous obtenez "ö".

PS: j'ai trouvé aussi ce lien, qui indique les valeurs à partir de l'étape 2.

Vous voulez convertir dans les deux sens? BTW: vous n'avez pas convertir en utf8 pour iso9959-1. Vous convertir forme utf8 à la valeur binaire de son point de code, et de le représenter en 8 bits. Que ce codepoint doit être interprété en latin1 n'a pas d'importance.
Vous trouverez beaucoup plus facile si vous allez par le biais de l'UTF-16. En UTF-8, vous avez E0/16. Cette fonction convertit à F6 selon l'UTF-8 de l'algorithme. Vous regardez en haut U+00F6 dans la norme ISO-8859-1 table, qui correspond à la position de la touche F6.
Si je sais une direction à l'autre ne devrait pas être un problème je pense. Parce que je n'ai pas obtenu le résultat souhaité avec le premier essai, j'ai fait un autre essai (l'inverse). Non j'ai édité ma question et a ajouté de la valeur binaire du point de code. Mais comment puis-je l'interpréter en Latin1 maintenant? @RaymondChen: C'est l'ISO-8859-1 table que j'utilise. Mais actuellement, je ne sais pas comment faire pour les deux octets C3 et B6.
ö en Latin-1 "n'est pas représenté comme ö". ö en Latin-1 est représenté à l'aide de l'octet 0xF6, ou 1111 0110. Si vous interpréter UTF-8 séquence d'octets pour la..., à savoir 0xC3B6 (1100 0011 1011 0110) en Latin-1, vous obtenez les deux personnages à (0xC3) et ¶ (0xB6) du codage Latin-1. Puis-je recommander Ce que Chaque Programmeur Absolument Besoin De Savoir Sur les Codages Et les Jeux de Caractères Pour Travailler Avec du Texte (pas le même que liés par @Avi)?

OriginalL'auteur testing | 2011-10-26