繁体   English   中英

字节数组为ScintillaNET的文本

[英]Byte array to text for ScintillaNET

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

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

我相信你正在寻找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中的“Encoding”类。

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM