gpt4 book ai didi

c# - Windows Phone 平台中的 Encoding.ASCII.GetString()

转载 作者:行者123 更新时间:2023-11-30 22:34:36 25 4
gpt4 key购买 nike

byte[] tagData = GetTagBytes(tagID, out tiffDataType, out numberOfComponents);
string str = Encoding.ASCII.GetString(tagData);

对于windows phone平台,框架不支持Encoding.ASCII.GetString()方法。

我曾经从 Passant 的帖子中获得帮助 ASCIIEncoding In Windows Phone 7之前。但它只是将string转换为byte[],现在我需要将byte[]转换为string

任何帮助都会很好~

最佳答案

如果您尝试了解如何 Hans' code有效,你会很容易想出反向转换:

public static string AsciiToString(byte[] bytes) { 
StringBuilder sb = new StringBuilder(bytes.Length);
foreach(byte b in bytes) {
sb.Append(b<=0x7f ? (char)b : '?');
}
return sb.ToString();
}

您也可以使用 LINQ,但只有 .NET 4.0 才有一个不错的解决方案:

string AsciiToString(byte[] bytes)
{
return string.Concat( bytes.Select(b => b <= 0x7f ? (char)b : '?') );
}

不幸的是缺少String.Concat<T>(IEnumerable<T>)旧版本框架中的重载迫使您使用有点丑陋和低效的方法:

string AsciiToString(byte[] bytes)
{
return string.Concat(
( bytes.Select(b => (b <= 0x7f ? (char)b : '?').ToString()) )
.ToArray()
);
}

关于c# - Windows Phone 平台中的 Encoding.ASCII.GetString(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7750850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com