.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)
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
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de convertir l'hex de la chaîne d'octets (voir DONC, après les). En passant la chaîne hexadécimale dans l'un des codages pour le convertir en octets vous donne juste l'octet équivalent de ces caractères. Je suis en supposant que ce que vous voulez, c'est les deux octets que le 4 chaîne de caractères représente, afin de décoder l'hex d'octets et ensuite vous pouvez utiliser l'encodage sur le décodé octets pour récupérer une chaîne de caractères.
OriginalL'auteur pstrjds
OriginalL'auteur BLUEPIXY