0

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

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

4

2 回答 2

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);
于 2012-09-24T00:08:53.450 回答
1

您可以使用 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()。

于 2012-09-24T00:11:45.790 回答