字节数组为ScintillaNET的文本

时间:2012-09-23 23:46:01

标签: c# winforms bytearray scintilla

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

基本上我想保存ScintillNET控件中的文本并将其转换为字节数组。 反过来说,取一个字节数组并打印出最初出现在ScintillaNET中的文本。

2 个答案:

答案 0 :(得分:1)

我相信您正在寻找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);

答案 1 :(得分:1)

您可以使用System.Text中的“Encoding”类。

System.Text.Encoding.Unicode.GetBytes("Example");

这将使用unicode编码返回一个字节数组,其字节等效于文本“string”。还有其他编码可用,但我建议使用unicode,因为它支持更多字符(例如,你在windows charmap中找到的任何东西)。在我的情况下,因为我是拉丁语,某些字母在UTF中不可用,我对ASCII有疑问。

现在要从字节数组转换为字符串use:

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

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