2010-10-29 6 views
3

Salut Je suis en train d'obtenir id périphérique de Windows 7 téléphone en utilisant le code suivantC# - Convertir octet [] à chaîne dans Windows Phone 7

byte[] result = null; 
String id = null; 
object uniqueId; 
if (DeviceExtendedProperties.TryGetValue("DeviceUniqueId", out uniqueId)) 
    result = (byte[])uniqueId; 

de problème est que je dois ce résultat dans la chaîne. Quelqu'un peut-il me dire comment faire cela? Cordialement

Répondre

9
string myString = Convert.ToBase64String(result); 

Cette fonction est disponible sur le téléphone Windows 7 plate-forme

http://msdn.microsoft.com/en-us/library/dhx0d524(VS.95).aspx

Et si vous avez besoin à nouveau le tableau d'octets, il suffit de demander comme ça.

byte[] byteArray = Convert.FromBase64String(myString); 

edit: Curt a fourni la bonne façon de se reconvertir en un tableau d'octets

+0

Great !! – Aqueel

+1

FYI, afin de récupérer les octets d'origine à partir de la chaîne Base 64, vous devrez utiliser Convert.FromBase64String(), pas GetBytes() comme indiqué ci-dessus. –

2
System.Text.Encoding.UTF8.GetString(myBytes, 0, myBytes.Length); 

Je n'ai pas vérifié, mais je suppose que cette méthode est disponible sur Windows Phone.

+0

Quand je fais cela, le résultat Débogueur est représenté sous forme de caractères spéciaux. – Aqueel

+0

Voici le résultat obtenu après avoir utilisé le code que vous avez posté. Nʝ Z 'j l " – Aqueel

+0

Est-il spécifié quelque part qu'un" DeviceUniqueId "doit être lisible par l'homme? – herzmeister