请教一个将RichTextBox内容转为字符串的问题

时间:2023-01-07 15:48:07
我是先将RichTextBox的内容存到数据库中,数据库中对应的列类型为 varbinary(MAX)
格式转化代码如下:
    System.IO.MemoryStream mstream = new System.IO.MemoryStream();
      this.DAContent.SaveFile(mstream, RichTextBoxStreamType.RichText);
       byte[] bWrite = mstream.ToArray();
然后将bWrite存入到数据库中,

然后,我再从数据库将内容取出来,想转为字符串返回给用户,但不管用什么编码转换,都转不成字符串形式,转换的结果就像下面这样:
"{\\rtf1\\ansi\\deff0{\\fonttbl{\\f0\\fnil\\fcharset134 \\'cb\\'ce\\'cc\\'e5;}}\r\n\\viewkind4\\uc1\\pard\\lang2052\\f0\\fs18 1.\\'bf\\'cd\\'bb\\'a7\\'d0\\'c5\\'cf\\'a2\\'d0\\'e8\\'cc\\'ee\\'d0\\'b4\\'d5\\'fd\\'c8\\'b7\\par\r\n\\par\r\n2.\\'d6\\'f7\\'d2\\'aa\\'d0\\'c5\\'cf\\'a2\\'b1\\'d8\\'d0\\'eb\\'cc\\'ee\\'d0\\'b4\\par\r\n\\par\r\n3.\\'bf\\'cd\\'bb\\'a7\\'d0\\'c5\\'cf\\'a2\\'c8\\'e7\\'d3\\'d0\\'b8\\'fc\\'b8\\'c4\\'a3\\'ac\\'d0\\'e8\\'cd\\'ac\\'b2\\'bd\\'b8\\'fc\\'d0\\'c2\\par\r\n\\par\r\n4.\\'c8\\'e7\\'bf\\'cd\\'bb\\'a7\\'d2\\'d1\\'b6\\'b3\\'bd\\'e1\\'d4\\'f2\\'b2\\'bb\\'c4\\'dc\\'b1\\'bb\\'cf\\'c2\\'bc\\'b6\\'b5\\'a5\\'d2\\'fd\\'d3\\'c3\\par\r\n\\par\r\n5.\\'bf\\'cd\\'bb\\'a7\\'d0\\'c5\\'cf\\'a2\\'c3\\'bb\\'d3\\'d0\\'c9\\'f3\\'ba\\'cb\\'d4\\'f2\\'b2\\'bb\\'c4\\'dc\\'b1\\'bb\\'cf\\'c2\\'bc\\'b6\\'b5\\'a5\\'d2\\'fd\\'d3\\'c3\\par\r\n\\par\r\n6.\\'d4\\'b4\\'b5\\'a5\\'b1\\'bb\\'cf\\'c2\\'bc\\'b6\\'b5\\'a5\\'d2\\'fd\\'d3\\'c3\\'d4\\'f2\\'b2\\'bb\\'c4\\'dc\\'b7\\'b4\\'c9\\'f3\\par\r\n\\par\r\n7.\\'bf\\'cd\\'bb\\
'a7\\'b1\\'e0\\'ba\\'c5\\'b2\\'bb\\'c4\\'dc\\'cf\\'e0\\'cd\\'ac\\par\r\n}\r\n\0"

请问下大家这种情况可以直接将内容转为字符串吗?

5 个解决方案

#1


引用 楼主 wggfcusmq 的回复:
我是先将RichTextBox的内容存到数据库中,数据库中对应的列类型为 varbinary(MAX)
格式转化代码如下:
    System.IO.MemoryStream mstream = new System.IO.MemoryStream();
      this.DAContent.SaveFile(mstream, RichTextBoxStreamType.RichText);
       byte[] bWrite = mstream.ToArray();
然后将bWrite存入到数据库中,

然后,我再从数据库将内容取出来,想转为字符串返回给用户,但不管用什么编码转换,都转不成字符串形式,转换的结果就像下面这样:
"{\\rtf1\\ansi\\deff0{\\fonttbl{\\f0\\fnil\\fcharset134 \\'cb\\'ce\\'cc\\'e5;}}\r\n\\viewkind4\\uc1\\pard\\lang2052\\f0\\fs18 1.\\'bf\\'cd\\'bb\\'a7\\'d0\\'c5\\'cf\\'a2\\'d0\\'e8\\'cc\\'ee\\'d0\\'b4\\'d5\\'fd\\'c8\\'b7\\par\r\n\\par\r\n2.\\'d6\\'f7\\'d2\\'aa\\'d0\\'c5\\'cf\\'a2\\'b1\\'d8\\'d0\\'eb\\'cc\\'ee\\'d0\\'b4\\par\r\n\\par\r\n3.\\'bf\\'cd\\'bb\\'a7\\'d0\\'c5\\'cf\\'a2\\'c8\\'e7\\'d3\\'d0\\'b8\\'fc\\'b8\\'c4\\'a3\\'ac\\'d0\\'e8\\'cd\\'ac\\'b2\\'bd\\'b8\\'fc\\'d0\\'c2\\par\r\n\\par\r\n4.\\'c8\\'e7\\'bf\\'cd\\'bb\\'a7\\'d2\\'d1\\'b6\\'b3\\'bd\\'e1\\'d4\\'f2\\'b2\\'bb\\'c4\\'dc\\'b1\\'bb\\'cf\\'c2\\'bc\\'b6\\'b5\\'a5\\'d2\\'fd\\'d3\\'c3\\par\r\n\\par\r\n5.\\'bf\\'cd\\'bb\\'a7\\'d0\\'c5\\'cf\\'a2\\'c3\\'bb\\'d3\\'d0\\'c9\\'f3\\'ba\\'cb\\'d4\\'f2\\'b2\\'bb\\'c4\\'dc\\'b1\\'bb\\'cf\\'c2\\'bc\\'b6\\'b5\\'a5\\'d2\\'fd\\'d3\\'c3\\par\r\n\\par\r\n6.\\'d4\\'b4\\'b5\\'a5\\'b1\\'bb\\'cf\\'c2\\'bc\\'b6\\'b5\\'a5\\'d2\\'fd\\'d3\\'c3\\'d4\\'f2\\'b2\\'bb\\'c4\\'dc\\'b7\\'b4\\'c9\\'f3\\par\r\n\\par\r\n7.\\'bf\\'cd\\'bb\\
'a7\\'b1\\'e0\\'ba\\'c5\\'b2\\'bb\\'c4\\'dc\\'cf\\'e0\\'cd\\'ac\\par\r\n}\r\n\0"

请问下大家这种情况可以直接将内容转为字符串吗?

http://www.biblioscape.com/rtf15_spec.htm

https://baike.baidu.com/item/%E5%AF%8C%E6%96%87%E6%9C%AC%E6%A0%BC%E5%BC%8F/1017816


关键字都给你了,自己努力。

#2


引用 1 楼 xomix 的回复:
Quote: 引用 楼主 wggfcusmq 的回复:

我是先将RichTextBox的内容存到数据库中,数据库中对应的列类型为 varbinary(MAX)
格式转化代码如下:
    System.IO.MemoryStream mstream = new System.IO.MemoryStream();
      this.DAContent.SaveFile(mstream, RichTextBoxStreamType.RichText);
       byte[] bWrite = mstream.ToArray();
然后将bWrite存入到数据库中,

然后,我再从数据库将内容取出来,想转为字符串返回给用户,但不管用什么编码转换,都转不成字符串形式,转换的结果就像下面这样:
"{\\rtf1\\ansi\\deff0{\\fonttbl{\\f0\\fnil\\fcharset134 \\'cb\\'ce\\'cc\\'e5;}}\r\n\\viewkind4\\uc1\\pard\\lang2052\\f0\\fs18 1.\\'bf\\'cd\\'bb\\'a7\\'d0\\'c5\\'cf\\'a2\\'d0\\'e8\\'cc\\'ee\\'d0\\'b4\\'d5\\'fd\\'c8\\'b7\\par\r\n\\par\r\n2.\\'d6\\'f7\\'d2\\'aa\\'d0\\'c5\\'cf\\'a2\\'b1\\'d8\\'d0\\'eb\\'cc\\'ee\\'d0\\'b4\\par\r\n\\par\r\n3.\\'bf\\'cd\\'bb\\'a7\\'d0\\'c5\\'cf\\'a2\\'c8\\'e7\\'d3\\'d0\\'b8\\'fc\\'b8\\'c4\\'a3\\'ac\\'d0\\'e8\\'cd\\'ac\\'b2\\'bd\\'b8\\'fc\\'d0\\'c2\\par\r\n\\par\r\n4.\\'c8\\'e7\\'bf\\'cd\\'bb\\'a7\\'d2\\'d1\\'b6\\'b3\\'bd\\'e1\\'d4\\'f2\\'b2\\'bb\\'c4\\'dc\\'b1\\'bb\\'cf\\'c2\\'bc\\'b6\\'b5\\'a5\\'d2\\'fd\\'d3\\'c3\\par\r\n\\par\r\n5.\\'bf\\'cd\\'bb\\'a7\\'d0\\'c5\\'cf\\'a2\\'c3\\'bb\\'d3\\'d0\\'c9\\'f3\\'ba\\'cb\\'d4\\'f2\\'b2\\'bb\\'c4\\'dc\\'b1\\'bb\\'cf\\'c2\\'bc\\'b6\\'b5\\'a5\\'d2\\'fd\\'d3\\'c3\\par\r\n\\par\r\n6.\\'d4\\'b4\\'b5\\'a5\\'b1\\'bb\\'cf\\'c2\\'bc\\'b6\\'b5\\'a5\\'d2\\'fd\\'d3\\'c3\\'d4\\'f2\\'b2\\'bb\\'c4\\'dc\\'b7\\'b4\\'c9\\'f3\\par\r\n\\par\r\n7.\\'bf\\'cd\\'bb\\
'a7\\'b1\\'e0\\'ba\\'c5\\'b2\\'bb\\'c4\\'dc\\'cf\\'e0\\'cd\\'ac\\par\r\n}\r\n\0"

请问下大家这种情况可以直接将内容转为字符串吗?

http://www.biblioscape.com/rtf15_spec.htm

https://baike.baidu.com/item/%E5%AF%8C%E6%96%87%E6%9C%AC%E6%A0%BC%E5%BC%8F/1017816


关键字都给你了,自己努力。

大概原因是清楚的,可能是因为包括的格式信息。  有没有快捷一些的方式转为字符串呢?

#3


引用 2 楼 wggfcusmq 的回复:
大概原因是清楚的,可能是因为包括的格式信息。  有没有快捷一些的方式转为字符串呢?

自己百度,github找找吧,关键字给你了自己动手丰衣足食。

#4


用了一个蠢点的方法

        RichTextBox rtb = new RichTextBox();
                    System.IO.MemoryStream mstream = new System.IO.MemoryStream(d.DAContent, false);
                    rtb.LoadFile(mstream, RichTextBoxStreamType.RichText);
                    string _content = rtb.Text;

#5


引用 4 楼 wggfcusmq 的回复:
用了一个蠢点的方法

        RichTextBox rtb = new RichTextBox();
                    System.IO.MemoryStream mstream = new System.IO.MemoryStream(d.DAContent, false);
                    rtb.LoadFile(mstream, RichTextBoxStreamType.RichText);
                    string _content = rtb.Text;

这好像是依赖和代码量最少,开发速度最快的方法了。

#1


引用 楼主 wggfcusmq 的回复:
我是先将RichTextBox的内容存到数据库中,数据库中对应的列类型为 varbinary(MAX)
格式转化代码如下:
    System.IO.MemoryStream mstream = new System.IO.MemoryStream();
      this.DAContent.SaveFile(mstream, RichTextBoxStreamType.RichText);
       byte[] bWrite = mstream.ToArray();
然后将bWrite存入到数据库中,

然后,我再从数据库将内容取出来,想转为字符串返回给用户,但不管用什么编码转换,都转不成字符串形式,转换的结果就像下面这样:
"{\\rtf1\\ansi\\deff0{\\fonttbl{\\f0\\fnil\\fcharset134 \\'cb\\'ce\\'cc\\'e5;}}\r\n\\viewkind4\\uc1\\pard\\lang2052\\f0\\fs18 1.\\'bf\\'cd\\'bb\\'a7\\'d0\\'c5\\'cf\\'a2\\'d0\\'e8\\'cc\\'ee\\'d0\\'b4\\'d5\\'fd\\'c8\\'b7\\par\r\n\\par\r\n2.\\'d6\\'f7\\'d2\\'aa\\'d0\\'c5\\'cf\\'a2\\'b1\\'d8\\'d0\\'eb\\'cc\\'ee\\'d0\\'b4\\par\r\n\\par\r\n3.\\'bf\\'cd\\'bb\\'a7\\'d0\\'c5\\'cf\\'a2\\'c8\\'e7\\'d3\\'d0\\'b8\\'fc\\'b8\\'c4\\'a3\\'ac\\'d0\\'e8\\'cd\\'ac\\'b2\\'bd\\'b8\\'fc\\'d0\\'c2\\par\r\n\\par\r\n4.\\'c8\\'e7\\'bf\\'cd\\'bb\\'a7\\'d2\\'d1\\'b6\\'b3\\'bd\\'e1\\'d4\\'f2\\'b2\\'bb\\'c4\\'dc\\'b1\\'bb\\'cf\\'c2\\'bc\\'b6\\'b5\\'a5\\'d2\\'fd\\'d3\\'c3\\par\r\n\\par\r\n5.\\'bf\\'cd\\'bb\\'a7\\'d0\\'c5\\'cf\\'a2\\'c3\\'bb\\'d3\\'d0\\'c9\\'f3\\'ba\\'cb\\'d4\\'f2\\'b2\\'bb\\'c4\\'dc\\'b1\\'bb\\'cf\\'c2\\'bc\\'b6\\'b5\\'a5\\'d2\\'fd\\'d3\\'c3\\par\r\n\\par\r\n6.\\'d4\\'b4\\'b5\\'a5\\'b1\\'bb\\'cf\\'c2\\'bc\\'b6\\'b5\\'a5\\'d2\\'fd\\'d3\\'c3\\'d4\\'f2\\'b2\\'bb\\'c4\\'dc\\'b7\\'b4\\'c9\\'f3\\par\r\n\\par\r\n7.\\'bf\\'cd\\'bb\\
'a7\\'b1\\'e0\\'ba\\'c5\\'b2\\'bb\\'c4\\'dc\\'cf\\'e0\\'cd\\'ac\\par\r\n}\r\n\0"

请问下大家这种情况可以直接将内容转为字符串吗?

http://www.biblioscape.com/rtf15_spec.htm

https://baike.baidu.com/item/%E5%AF%8C%E6%96%87%E6%9C%AC%E6%A0%BC%E5%BC%8F/1017816


关键字都给你了,自己努力。

#2


引用 1 楼 xomix 的回复:
Quote: 引用 楼主 wggfcusmq 的回复:

我是先将RichTextBox的内容存到数据库中,数据库中对应的列类型为 varbinary(MAX)
格式转化代码如下:
    System.IO.MemoryStream mstream = new System.IO.MemoryStream();
      this.DAContent.SaveFile(mstream, RichTextBoxStreamType.RichText);
       byte[] bWrite = mstream.ToArray();
然后将bWrite存入到数据库中,

然后,我再从数据库将内容取出来,想转为字符串返回给用户,但不管用什么编码转换,都转不成字符串形式,转换的结果就像下面这样:
"{\\rtf1\\ansi\\deff0{\\fonttbl{\\f0\\fnil\\fcharset134 \\'cb\\'ce\\'cc\\'e5;}}\r\n\\viewkind4\\uc1\\pard\\lang2052\\f0\\fs18 1.\\'bf\\'cd\\'bb\\'a7\\'d0\\'c5\\'cf\\'a2\\'d0\\'e8\\'cc\\'ee\\'d0\\'b4\\'d5\\'fd\\'c8\\'b7\\par\r\n\\par\r\n2.\\'d6\\'f7\\'d2\\'aa\\'d0\\'c5\\'cf\\'a2\\'b1\\'d8\\'d0\\'eb\\'cc\\'ee\\'d0\\'b4\\par\r\n\\par\r\n3.\\'bf\\'cd\\'bb\\'a7\\'d0\\'c5\\'cf\\'a2\\'c8\\'e7\\'d3\\'d0\\'b8\\'fc\\'b8\\'c4\\'a3\\'ac\\'d0\\'e8\\'cd\\'ac\\'b2\\'bd\\'b8\\'fc\\'d0\\'c2\\par\r\n\\par\r\n4.\\'c8\\'e7\\'bf\\'cd\\'bb\\'a7\\'d2\\'d1\\'b6\\'b3\\'bd\\'e1\\'d4\\'f2\\'b2\\'bb\\'c4\\'dc\\'b1\\'bb\\'cf\\'c2\\'bc\\'b6\\'b5\\'a5\\'d2\\'fd\\'d3\\'c3\\par\r\n\\par\r\n5.\\'bf\\'cd\\'bb\\'a7\\'d0\\'c5\\'cf\\'a2\\'c3\\'bb\\'d3\\'d0\\'c9\\'f3\\'ba\\'cb\\'d4\\'f2\\'b2\\'bb\\'c4\\'dc\\'b1\\'bb\\'cf\\'c2\\'bc\\'b6\\'b5\\'a5\\'d2\\'fd\\'d3\\'c3\\par\r\n\\par\r\n6.\\'d4\\'b4\\'b5\\'a5\\'b1\\'bb\\'cf\\'c2\\'bc\\'b6\\'b5\\'a5\\'d2\\'fd\\'d3\\'c3\\'d4\\'f2\\'b2\\'bb\\'c4\\'dc\\'b7\\'b4\\'c9\\'f3\\par\r\n\\par\r\n7.\\'bf\\'cd\\'bb\\
'a7\\'b1\\'e0\\'ba\\'c5\\'b2\\'bb\\'c4\\'dc\\'cf\\'e0\\'cd\\'ac\\par\r\n}\r\n\0"

请问下大家这种情况可以直接将内容转为字符串吗?

http://www.biblioscape.com/rtf15_spec.htm

https://baike.baidu.com/item/%E5%AF%8C%E6%96%87%E6%9C%AC%E6%A0%BC%E5%BC%8F/1017816


关键字都给你了,自己努力。

大概原因是清楚的,可能是因为包括的格式信息。  有没有快捷一些的方式转为字符串呢?

#3


引用 2 楼 wggfcusmq 的回复:
大概原因是清楚的,可能是因为包括的格式信息。  有没有快捷一些的方式转为字符串呢?

自己百度,github找找吧,关键字给你了自己动手丰衣足食。

#4


用了一个蠢点的方法

        RichTextBox rtb = new RichTextBox();
                    System.IO.MemoryStream mstream = new System.IO.MemoryStream(d.DAContent, false);
                    rtb.LoadFile(mstream, RichTextBoxStreamType.RichText);
                    string _content = rtb.Text;

#5


引用 4 楼 wggfcusmq 的回复:
用了一个蠢点的方法

        RichTextBox rtb = new RichTextBox();
                    System.IO.MemoryStream mstream = new System.IO.MemoryStream(d.DAContent, false);
                    rtb.LoadFile(mstream, RichTextBoxStreamType.RichText);
                    string _content = rtb.Text;

这好像是依赖和代码量最少,开发速度最快的方法了。