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

标签 c# windows-phone-7 encoding

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/

相关文章:

windows-phone-7 - 如何在不借助第三方应用程序或网站的情况下找到 Wp7 应用程序排名

.net - youtube - 视频上传失败 - 无法转换文件 - 视频编码错误?

c# - 如何通过 Selenium Script C# 将参数传递给 chrome 扩展?

c# - Azure Function 上带参数的两个计时器触发器

windows-phone-7 - WP7 文字环绕图像

c# - 替换 Windows Phone 中的序列化信息

c# - 将额外参数传递给委托(delegate)

c# - 回调的概念 (C#)

java - 检查数据库中的字符串是否是用 Java 编码的 utf-8

encoding - 错误的 MySQL 导入,现在我们用垃圾代替 utf-8 字符显示