.NET Converter da sequência de valores Hex em caracteres Unicode (suporta diferentes páginas de códig
Tenho uma sequência de valores hexadecimais ...
String hexString = "8A65";
Preciso converter essa string em seus equivalentes Unicode. A parte complicada é que eu preciso suportar páginas de código diferentes e algumas páginas de código têm '8A65' = um caractere, enquanto outras páginas de código o converteriam em dois caractere
Não tenho conhecimento prévio de qual página de código utilizarei até precisar realizar a conversã
Eu tentei todo tipo de coisas como
byte[] original = Encoding.Unicode.GetBytes(hexString);
byte[] conv= Encoding.Convert(Encoding.Unicode, Encoding.GetEncoding(932), orig);
char[] chars = Encoding.GetEncoding(932).GetChars(conv);
Nota: a página de código 932 é japonesa
SOLUÇÃ
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);
Obrigado, você é um salva-vidas!