.NET Convertir de la chaîne de valeurs hexadécimales dans des caractères Unicode (Soutien des différentes pages de code)

J'ai une chaîne de valeurs en Hexadécimal...

String hexString = "8A65";

J'ai besoin de convertir cette chaîne en leur Unicode équivalents. La partie délicate est que j'ai besoin de soutien différentes pages de code et quelques pages de code ont '8A65' = un caractère alors que d'autres pages de code serait le convertir en deux personnages.

Je n'ai aucune connaissance préalable de ce qui page de code que je vais utiliser jusqu'à ce que j'ai besoin pour effectuer la conversion.

J'ai essayé toutes sortes de choses, comme

byte[] original = Encoding.Unicode.GetBytes(hexString);
byte[] conv= Encoding.Convert(Encoding.Unicode, Encoding.GetEncoding(932), orig);
char[] chars = Encoding.GetEncoding(932).GetChars(conv);

Remarque: le code de la page 932 est Japonais

SOLUTION

string hexString = "8A65";
int length = hexString.length;
byte[] bytes = new byte[length / 2];

for (int i = 0; i < length; i += 2)
{
    bytes[i / 2] = Convert.ToByte(hexString.Substring(i, 2), 16);
}

char[] chars = Encoding.GetEncoding(932).GetChars(bytes);

Merci pstrjds, vous êtes un épargnant de vie!

Quel est le problème que vous avez vu avec votre approche? Vous n'avez pas vraiment poser une question ici.
Pourriez-vous dire quel est votre besoin en tant que question?
C'est une question et une réponse du site. Vous poser des questions, de nous répondre. La caractéristique d'une question, c'est qu'il se termine par un point d'interrogation ('?', Le code ASCII 0x3F)

OriginalL'auteur user1002479 | 2011-12-22