Unicode-to-string conversion in C#

前端 未结 7 933
你的背包
你的背包 2020-12-20 17:22

How can I convert a Unicode value to its equivalent string?

For example, I have \"రమెశ్\", and I need a function that accepts this Unicode value and returns a string

相关标签:
7条回答
  • 2020-12-20 18:07

    UTF8Encoding Class

       UTF8Encoding uni = new UTF8Encoding();
       Console.WriteLine( uni.GetString(new byte[] { 1, 2 }));
    
    0 讨论(0)
  • 2020-12-20 18:09

    Use .ToString();

    this.Text = ((char)0x00D7).ToString();
    
    0 讨论(0)
  • 2020-12-20 18:12
    var ascii = $"{new ASCIIEncoding().ToString()}: {((ASCIIEncoding)new ASCIIEncoding()).GetString(textBytesASCII)}";
    var utf = $"{new UTF8Encoding().ToString()}: {((UTF8Encoding)new UTF8Encoding()).GetString(textBytesUTF8)}";
    var unicode = $"{new UnicodeEncoding().ToString()}: {((UnicodeEncoding)new UnicodeEncoding()).GetString(textBytesCyrillic)}";
    
    0 讨论(0)
  • 2020-12-20 18:14

    There are different types of encoding. You can try some of them to see if your bytestream get converted correctly:

    System.Text.ASCIIEncoding encodingASCII = new System.Text.ASCIIEncoding();
    System.Text.UTF8Encoding encodingUTF8 = new System.Text.UTF8Encoding();
    System.Text.UnicodeEncoding encodingUNICODE = new System.Text.UnicodeEncoding();
    
    var ascii = string.Format("{0}: {1}", encodingASCII.ToString(), encodingASCII.GetString(textBytesASCII));
    var utf =   string.Format("{0}: {1}", encodingUTF8.ToString(), encodingUTF8.GetString(textBytesUTF8));
    var unicode = string.Format("{0}: {1}", encodingUNICODE.ToString(), encodingUNICODE.GetString(textBytesCyrillic));
    

    Have a look here as well: http://george2giga.com/2010/10/08/c-text-encoding-and-transcoding/.

    0 讨论(0)
  • 2020-12-20 18:16

    To convert a string to a Unicode string, do it like this: very simple... note the BytesToString function which avoids using any inbuilt conversion stuff. Fast, too.

    private string BytesToString(byte[] Bytes)
    {
      MemoryStream MS = new MemoryStream(Bytes);
      StreamReader SR = new StreamReader(MS);
      string S = SR.ReadToEnd();
      SR.Close();
      return S;
    }
    
    private string ToUnicode(string S)
    {
      return BytesToString(new UnicodeEncoding().GetBytes(S));
    }
    
    0 讨论(0)
  • 2020-12-20 18:21

    Wrote a cycle for converting unicode symbols in string to UTF8 letters:

    string stringWithUnicodeSymbols = @"{""id"": 10440119, ""photo"": 10945418, ""first_name"": ""\u0415\u0432\u0433\u0435\u043d\u0438\u0439""}";
    var splitted = Regex.Split(stringWithUnicodeSymbols, @"\\u([a-fA-F\d]{4})");
    string outString = "";
    foreach (var s in splitted)
    {
        try
        {
            if (s.Length == 4)
            {
                var decoded = ((char) Convert.ToUInt16(s, 16)).ToString();
                outString += decoded;
            }
            else
            {
                outString += s;
            }
        }
        catch (Exception e)
        {
            outString += s;
        }
    }
    
    0 讨论(0)
提交回复
热议问题