2010-11-30 15 views
5

Possible en double:
.NET String to byte Array C#Chaîne à octet [] et vice versa?

Comment puis-je convertir la chaîne à l'octet [] tableau et vice-versa? J'ai besoin de chaînes pour être stockées dans un stockage binaire. S'il vous plaît montrer l'exemple dans les deux directions. Et encore une chose: chaque chaîne peut-être plus de 90Kb.

+3

Cette question a une réponse plutôt trompeuse, en fonction du comportement de la sortie de sérialisation d'exécution, qui n'est certainement pas compatible avec le langage multilingue. Par conséquent, je ne vais pas voter pour fermer en double. Utiliser un codage approprié, comme UTF-8, est une bien meilleure approche. – cdhowie

+2

@cdhowie: d'accord. "Plutôt trompeur" est une façon polie de le dire. :) – MusiGenesis

+0

Merci à tous pour les réponses !;) – Edward83

Répondre

18

Si vous souhaitez utiliser encodage UTF-8:

// string to byte[] 
byte[] bytes = Encoding.UTF8.GetBytes(someString); 

// byte[] to string 
string anotherString = Encoding.UTF8.GetString(bytes); 
8

Avant mars hors et utilisez l'un des exemples que quelqu'un vous a déjà donné doit être au courant qu'il ya, en général, pas de correspondance unique entre une chaîne et une séquence d'octets. La manière dont la chaîne est mappée en binaire (et vice versa) est déterminée par le encoding que vous utilisez. Joel Spolsky a écrit un awesome article sur ce sujet. Lors du décodage binaire pour obtenir une chaîne, vous devez utiliser le même codage que celui utilisé pour produire le binaire, sinon vous rencontrerez des problèmes.