如何把UNICODE的STRING转成RTF格式?

Dickson 2010-03-20 11:32:11
我有个含有UNICODE的STRING,如果我直接把它弄到RICH TEXT BOX里, RTextBox.text=strUnicode

有些UNICODE字符会丢失,显示成?符号。

所以我考虑把STRING转成富文本保存成RTF,这样就可以用RICH TEXT BOX编辑了。

求助~~
...全文
264 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
东方之珠 2010-03-21
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 bcrun 的回复:]
引用 11 楼 chenjl1031 的回复:
引用 10 楼 dickson 的回复:
装SP6也一样啊。。。还是不能显示UNICODE。。。


在我的电脑是可以的。你是不是选择的控件 Microsoft Rich TextBox Control 6.0 (SP6) ?


我看是你们关于"能否显示UNICODE"的标准定的不一样,所以都用SP6时你们的看法不同.比如说,楼主上……
[/Quote]
没错,显示成小写了。看来,仅仅不显示成问号“?”和乱码,还不行,要求太低!
bcrun 2010-03-21
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 chenjl1031 的回复:]
引用 10 楼 dickson 的回复:
装SP6也一样啊。。。还是不能显示UNICODE。。。


在我的电脑是可以的。你是不是选择的控件 Microsoft Rich TextBox Control 6.0 (SP6) ?
[/Quote]

我看是你们关于"能否显示UNICODE"的标准定的不一样,所以都用SP6时你们的看法不同.比如说,楼主上个帖子里的法文字符串里,有个字符È,注意它的主体可是大写的E哦,这个东西用TXT文件形式读到RICHTEXTBOX里,可能就是变成主体是小写e的è,这个严格来说是对unicode支持不好,已经编码有损了(估计是被WINDOWS默认转为GBK里拼音字母e(四声)了.这种情况,chenjl1031要求不高的话,可能已认为是支持UNICODE编码的TXT文件了,其实严格来说是不对的.

如用RTF文件载入,那个È则完全是正常读取的!!

另外我比较了SP4和SP6版RICHTEXTBOX两控件在这方面的表现,暂没发现区别
chinaboyzyq 2010-03-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 dickson 的回复:]
你好,RICH TEXT BOX如果读TXT是不支持UNICODE的,但是如果是RTF就可以。。。。所以我想转成RTF
[/Quote]

有个简单的办法,你把你的串复制到“写字板”,然后存成xx.rtf,再用记事本打开xx.rtf,就可以在记事本里找到你的rtf串了(注意记事本里的串不是全有用)。
东方之珠 2010-03-20
  • 打赏
  • 举报
回复
Microsoft Rich TextBox Control 6.0 (SP6) 支持UNICODE字符。也就是说打开了补丁SP6补丁是可以的。
chinaboyzyq 2010-03-20
  • 打赏
  • 举报
回复
即使你转换成功,再读回来时我想仍会有?情况发生。
因为VB6的RICH TEXT BOX不能很好的支持Unicode。
lb_bn 2010-03-20
  • 打赏
  • 举报
回复
帮楼主顶一下。。
bcrun 2010-03-20
  • 打赏
  • 举报
回复
RTF格式本身是通过\u13312这样的编码方式正常保存unicode字符.我觉得这不是你要担心的重要问题.楼主这似乎还和上一个法文的问题是同一件事?
东方之珠 2010-03-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 dickson 的回复:]
我有个含有UNICODE的STRING,如果我直接把它弄到RICH TEXT BOX里, RTextBox.text=strUnicode

有些UNICODE字符会丢失,显示成?符号。

所以我考虑把STRING转成富文本保存成RTF,这样就可以用RICH TEXT BOX编辑了。

求助~~
[/Quote]
保存之前用下面这个函数转换成Unicode文本:
Text=StrConv("原来的文本",vbUnicode)


东方之珠 2010-03-20
  • 打赏
  • 举报
回复
VB6的RICHTEXTBOX版本是ANSI的,你用UNICODE版本的RICHTEXTBOX控件就没有问题.
贝隆 2010-03-20
  • 打赏
  • 举报
回复
看看这个,也许对你有帮助:http://download.csdn.net/source/1785343
东方之珠 2010-03-20
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 dickson 的回复:]
装SP6也一样啊。。。还是不能显示UNICODE。。。
[/Quote]

在我的电脑是可以的。你是不是选择的控件 Microsoft Rich TextBox Control 6.0 (SP6) ?
Dickson 2010-03-20
  • 打赏
  • 举报
回复
装SP6也一样啊。。。还是不能显示UNICODE。。。
东方之珠 2010-03-20
  • 打赏
  • 举报
回复
VB最新SP6补丁下载(最好用迅雷下载):
http://www.chinavb.net/Software.asp?id=52
flameflash 2010-03-20
  • 打赏
  • 举报
回复

Private Sub Command1_Click()
Dim wordApp As New Word.Application
'添加Document文档对象
wordApp.Documents.Add
'设置Word对象标题
wordApp.Caption = "WORD文档"
With wordApp.Selection
.typetext Text1.Text
End With
'保存文档为RTF
wordApp.ActiveDocument.SaveAs App.Path & "\文件名.rtf"
'设置Word对象可见
wordApp.Visible = True
End Sub

窗口中新建textbox1和Command1
然后在 "工程"->"引用" 中把Microsoft Word勾选上
运行后点击Command1会在程序所在文件夹生成一个 文件名.rtf
不知道楼主是不是这个意思
Dickson 2010-03-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 chinaboyzyq 的回复:]

即使你转换成功,再读回来时我想仍会有?情况发生。
因为VB6的RICH TEXT BOX不能很好的支持Unicode。
[/Quote]

你好,RICH TEXT BOX如果读TXT是不支持UNICODE的,但是如果是RTF就可以。。。。所以我想转成RTF

[Quote=引用 6 楼 chenjl1031 的回复:]

Microsoft Rich TextBox Control 6.0 (SP6) 支持UNICODE字符。也就是说打开了补丁SP6补丁是可以的。
[/Quote]

在哪能下到SP6的补丁?谢谢

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧