C# 4.0 如何将Unicode[Marathi]字符串转换为字节数组?
我试图将C# 4.0 如何将Unicode[Marathi]字符串转换为字节数组?,c#-4.0,encoding,C# 4.0,Encoding,我试图将unicode[marathi]字符串转换为字节数组,但当我转换它并打印时,它会像这样显示“” using System; using System.Text; public class Example { public static void Main() { // Input string. const string input = "पांडुरंग"; // Invoke GetBytes method. // ... You can s
unicode
[marathi]字符串转换为字节数组
,但当我转换它并打印时,它会像这样显示“”
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();
}
}
如果有人对此有所了解,请帮助我们。提前感谢。尝试使用
编码.Unicode
而不是编码.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);
}
我也尝试过这个方法,但显示的输出如下42=*9=62=>9=2=☻ 9 = 33 = ! 9=65=A 9=48=0 9=2=☻ 9 = 23 = ↨ 9=据我所知,自VisualStudio 2013以来,控制台仅启用了Unicode
foreach (byte element in Encoding.Unicode.GetString(array).ToCharArray()
{
Console.WriteLine("{0} = {1}", element, (char)element);
}