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

C# Windows Phone平台中的Encoding.ASCII.GetString(),c#,windows-phone-7,encoding,C#,Windows Phone 7,Encoding,对于windows phone平台,框架不支持编码.ASCII.GetString()方法 我过去常常从帕桑的邮局得到帮助。但是它只将字符串转换为字节[],现在我需要将字节[]转换为字符串 任何帮助都是很好的~如果您试图了解其工作原理,您将很容易得到反向转换: byte[] tagData = GetTagBytes(tagID, out tiffDataType, out numberOfComponents); string str = Encoding.ASCII.GetString(ta

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

我过去常常从帕桑的邮局得到帮助。但是它只将
字符串
转换为
字节[]
,现在我需要将
字节[]
转换为
字符串


任何帮助都是很好的~

如果您试图了解其工作原理,您将很容易得到反向转换:

byte[] tagData = GetTagBytes(tagID, out tiffDataType, out numberOfComponents);
string str = Encoding.ASCII.GetString(tagData);
公共静态字符串AsciiToString(字节[]字节){
StringBuilder sb=新的StringBuilder(字节.长度);
foreach(字节中的字节b){

sb.Append(如果您真的有ASCII(所以Convert.ToBase64String方法(字节[])返回字符串


我希望这有帮助!

基于Serge-appTranslator,我创建了一个重载实现,它完全模仿silverlight的Encoding.ASCII.GetString

StringBuilder sb = new StringBuilder(tagData.Length);
foreach (var b in tagData)
{
    sb.Append((char)b);
}

var str = sb.ToString();
公共静态字符串编码字符串(字节[]字节,整数索引,整数计数)
{
StringBuilder sb=新StringBuilder(计数);

对于(int i=index;i你确定你真的需要ASCII吗?90%要求ASCII的用户真的想要UTF-8不起作用?你应该/可能(?)有一个
GetString(Byte[],Int32,Int32)
方法,在这里你可以使用
GetString(tagData,0,tagData.Length)
,对吗?是的,这就是我想要的。因为我只是c#的初学者,很多东西让我困惑。谢谢你的帮助。
string AsciiToString(byte[] bytes)
{
  return string.Concat( bytes.Select(b => b <= 0x7f ? (char)b : '?') );
}
string AsciiToString(byte[] bytes)
{
  return string.Concat( 
    ( bytes.Select(b => (b <= 0x7f ? (char)b : '?').ToString()) )
    .ToArray()
    );
}
StringBuilder sb = new StringBuilder(tagData.Length);
foreach (var b in tagData)
{
    sb.Append((char)b);
}

var str = sb.ToString();
    public static string EncodingASCIIGetString(byte[] bytes, int index, int count)
    {
        StringBuilder sb = new StringBuilder(count);

        for(int i = index; i<(index+count); i++)
        {
            sb.Append(bytes[i] <= 0x7f ? (char)bytes[i] : '?');             
        }

        return sb.ToString();
    }