C# 闪烁网的字节数组到文本

C# 闪烁网的字节数组到文本,c#,winforms,bytearray,scintilla,C#,Winforms,Bytearray,Scintilla,我正在用c编写一个windows窗体应用程序。该应用程序允许用户从列表框中选择源代码文件,并使用闪烁网以彩色代码显示它们。这些文件保存为数据库中的字节数组。我已设法将硬盘上的文件转换为字节数组并存储它。用户还应该能够编辑代码,然后将其保存到数据库,而不必先将文件加载到本地硬盘,我不知道如何实现这一点 基本上,我想保存闪烁控件中的文本,并将其转换为字节数组。 另一种方法是,取一个字节数组,打印出闪烁网中最初显示的文本。我相信您正在寻找System.text.Encoding名称空间

我正在用c编写一个windows窗体应用程序。该应用程序允许用户从列表框中选择源代码文件,并使用闪烁网以彩色代码显示它们。这些文件保存为数据库中的字节数组。我已设法将硬盘上的文件转换为字节数组并存储它。用户还应该能够编辑代码,然后将其保存到数据库,而不必先将文件加载到本地硬盘,我不知道如何实现这一点

基本上,我想保存闪烁控件中的文本,并将其转换为字节数组。
另一种方法是,取一个字节数组,打印出闪烁网中最初显示的文本。

我相信您正在寻找System.text.Encoding名称空间

        // a sample string...
        string example = "A string example...";

        // convert string to bytes
        byte[] bytes = Encoding.UTF8.GetBytes(example);

        // convert bytes to string
        string str = System.Text.Encoding.UTF8.GetString(bytes);

您可以使用System.Text中的编码类

System.Text.Encoding.Unicode.GetBytes("Example");
这将返回一个字节数组,其中的字节相当于使用unicode编码的文本字符串。还有其他可用的编码,但我建议使用unicode,因为它支持更多的字符,例如在windows charmap中找到的任何字符。在我的例子中,是因为我是拉丁文,某些字母在UTF中是不可用的,我对ASCII有疑问

现在要将字节数组转换为字符串,请使用:

byte[] exampleByteArray = MemStream.ToArray();
System.Text.Encoding.Unicode.GetString(exampleByteArray);

此代码将返回以前作为字节数组保存在内存流中的字符串。您可以使用其他方法加载字节数组,在这种情况下,您将从数据库加载它并调用System.Text.Encoding.Unicode.GetString。

回答得很好。只是一个警告,闪烁网可能需要一个特定的编码。一定要检查!