我正在用c#编写一个Windows窗体应用程序。该应用程序允许用户从列表框中选择源代码文件,并使用ScintillaNET以彩色代码显示它们。这些文件作为字节数组保存在数据库中。我已设法从我的硬盘驱动器上的文件转换为字节数组并存储它。用户还应该能够编辑代码,然后将其保存到数据库,而不必先将文件下载到本地硬盘,我不知道如何处理。
基本上我想保存ScintillNET控件中的文本并将其转换为字节数组。 反过来说,取一个字节数组并打印出最初出现在ScintillaNET中的文本。
答案 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()。