如何将Unicode [Marathi]字符串转换为字节数组?

时间:2014-02-04 07:25:52

标签: c#-4.0 encoding

我正在尝试将unicode [marathi]字符串转换为byte array,但当我将其转换并打印时,会显示“????????? 像这样。

using System;
using System.Text;

   public class Example
{
public static void Main()
{
    // Input string.
    const string input = "पांडुरंग";

    // Invoke GetBytes method.
    // ... You can store this array as a field!
   byte[] array = Encoding.ASCII.GetBytes(input);

    // Loop through contents of the array.
    foreach (byte element in array)
    {
        Console.WriteLine("{0} = {1}", element, (char)element);
    }
        Console.ReadLine();
   }
}

Output:
        63 = ?
        63 = ?
        63 = ?
        63 = ?
        63 = ?
        63 = ?
        63 = ?
        63 = ?

如果有人对此有所了解,请提前帮助我们。谢谢。

1 个答案:

答案 0 :(得分:1)

尝试使用Encoding.Unicode代替Encoding.ASCII

 byte[] array = Encoding.Unicode.GetBytes(input);

此外,您将每个字节转换为单独的字符,而实际上每个字符由两个字节表示。从字节数组中获取字符的最简单方法是使用相同的编码将字节转换回字符串,并在rsulting字符串上调用GetCharArray():

    foreach (byte element in Encoding.Unicode.GetString(array).ToCharArray()
    {
        Console.WriteLine("{0} = {1}", element, (char)element);
    }