2009-09-16 8 views
0

J'essaie d'envoyer des messages HL7 à un récepteur. Le récepteur dit maintenant qu'ils ont des points d'interrogation au lieu de 'ä' et 'ö'. Que devrais-je faire?Problème de codage avec les caractères nordiques

En ce moment, je le fais au sujet comme celui-ci:

Je System.Net.Sockets.TcpClient puis initialiser

Dim data(payload.Length) As Byte 
Dim stream As System.Net.Sockets.NetworkStream = _tcpClient.GetStream() 
System.Text.Encoding.ASCII.GetBytes(payload).CopyTo(data, 1) 
stream.Write(data, 0, data.Length) 

Payload est mon message de type chaîne comprenant des personnages comme 'ä' et ' ö '. J'utilise Visual Studio 2003 et Framework 1.1.

+1

Le jeu de caractères ASCII ne contient pas de tels caractères. – Gumbo

+0

En outre: L'utilisation de la propriété payload.Length en tant que longueur de Byte-Array suppose qu'une chaîne de caractères _n_ aboutira toujours à un octet-Array de _n_ octets. Ce n'est pas vrai pour UTF-8. –

+0

Et: Je suis assez sûr que vous n'avez pas du tout besoin du CopyTo, utilisez simplement le résultat de GetBytes() –

Répondre

3

Je ne connais pas HL7, mais en gros votre problème est que vous utilisez ASCII.

Quel codage HL7 autorise-t-il? S'il vous permet d'utiliser UTF-8, c'est probablement la solution la plus simple - il suffit de changer votre utilisation de en Encoding.UTF8.

Questions connexes