DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: xieqiongxi1
今日帖子: 0
在线用户: 6
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 wr960204 (武稀松) ★☆☆☆☆ -
盒子活跃会员
2017/3/15 19:33:26
标题:
Unicode版本Delphi的一个问题 浏览:1717
加入我的收藏
楼主: 算做个小调查,有没有经常用WebBrowser控件的兄弟,我有种感觉,好像Unicode版本以后的Delphi在使用Webbrowser控件的时候速度比之前ANSI版本(Delphi2007以及以前版本)的慢。
但是从道理上讲不管是否是Unicode的,本质上都是微软COM的DLL代码啊,速度不应该有明显差异的。
不知道是我的直觉还是怎么的,有兄弟们有这方面的体验吗?
----------------------------------------------
武稀松http://www.raysoftware.cn
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2017/3/16 8:38:16
1楼: abc
Ansi 3 个字节
unicode 6 个字节。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 zwjchinazwj (蒲石) ★☆☆☆☆ -
普通会员
2017/3/16 8:51:34
2楼: 你确定unicode 是6个字节? utf8是unicode么?
----------------------------------------------
-
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2017/3/16 8:54:48
3楼: UTF8是存储用的,内存里用的一般都是Unicode 16 (UCS2) [大约包含96.9%的UTF16字符]。
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 doorkey (DoorKey) ★☆☆☆☆ -
盒子活跃会员
2017/3/16 10:14:47
4楼: 我好像感觉不出来webbrowser有变慢
----------------------------------------------
QQ: 9717005 我的Blog:http://www.cnblogs.com/anydelphi/
作者:
男 luwakin (luwakin) ★☆☆☆☆ -
普通会员
2017/3/16 11:13:10
5楼: webbrowser,不是用的是操作系统自带的IE内核吗,和delphi版本没关系吧
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2017/3/16 11:17:51
5楼: 2 楼,我们这些人水平低,我们认为 unicode 和微软的 WideString 差不多。
所以 是  2 个字节。
也就是 3 楼说的 unicode 16,其他的 unicode 我们不认识。

但是我们认识 UCS4 UCS2 。

也许您的  unicode 和我们的不一样,我们就不知道了。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 wr960204 (武稀松) ★☆☆☆☆ -
盒子活跃会员
2017/3/16 14:35:37
6楼: 我擦,这都绕到那里去了
----------------------------------------------
武稀松http://www.raysoftware.cn
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2017/3/16 14:54:50
7楼: 刚才看了篇文章,分析了一下当前32位程序和64位程序哪个快,总的来说,目前“同等”硬件条件下还是32位程序稍快一些,不过也不是绝对的,以后随着各种64位软硬件的完善,64位程序的速度会赶上32位,就像之前16位转到32位一样。
64位是趋势,说不定再过段时间128位也要流行了(虽然早就有128位及以上的CPU了)。
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 zwjchinazwj (蒲石) ★☆☆☆☆ -
普通会员
2017/3/16 18:34:41
8楼: @wr960204 (武稀松) 
哈哈,歪了,我的错。

我只是作个猜测,大多数网页使用的是UTF8,原来在Delphi7下,String作为单字节串,存储UTF8,无须做任何数据转换。但是,到DelphiXE下,UTF8到UTF16的转换成为一个不可避免的事情。
----------------------------------------------
-
作者:
男 zoujun3281 (无奈) ▲▲▲▲▲ -
普通会员
2017/3/16 19:22:32
9楼: 5分钟写个程序验证一下就行了
----------------------------------------------
delphi你妹
作者:
男 wr960204 (武稀松) ★☆☆☆☆ -
盒子活跃会员
2017/3/17 0:03:12
10楼: @zwjchinazwj (蒲石)
其实编码转换效率是很高的,因为那些API就是用查表方式实现的.估计对效率会有一点影响,但不会特别大.
我总觉得Unicode版本Delphi的Webbrowser慢悠悠的,不如Delphi2007以前的那样快.但是又想不出理由
----------------------------------------------
武稀松http://www.raysoftware.cn
作者:
男 chzwb (zhonglai) ★☆☆☆☆ -
盒子活跃会员
2017/3/17 8:03:23
11楼: UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2017/3/17 8:34:31
12楼: 使用 unicode 也可以在网页上同时显示各国文字。
一般 unicode 用 2个字节表示一个字符,但是也有个别的字符是 4 个字节的,既 2 个 unicode表示一个字符。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2017/3/17 8:53:58
13楼: 网页编码和文件编码是一样的,如果程序是Unicode版本的,最终还是得转换到Unicode16显示的,所以不矛盾。
64位程序从硬盘加载时因为体积比32位大,所以加载速度会慢一些,运行起来速度应该不慢的,如果你用SSD盘,那么几乎可以忽略不记了。
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 zwjchinazwj (蒲石) ★☆☆☆☆ -
普通会员
2017/3/17 9:55:54
14楼: 12楼的,你就不要再误导人了。
UTF8 是一种Uncoide的编码形式,换句话说,就是unicode
UTF16 也是一种Uncoide的编码形式,也是unicode
UTF32 同样也是

UTF8 以byte单位,可能以(1, 2, 3 ...) 个字节表示1个字符
UTF16 以word单位,可能以(2, 4, 6 ...) 个字节表示1个字符
UTF32 类推。

注意,Unicode是号称可以表示世界所有字符的,因此,在1个字符存储空间是不可能限定为固定字节数,以UTF16为例,1个word(双字节)中,除了包含字符本身码点信息外,也包含了是否还需要后续的1个word拼在一起表达1个字符码。

综上所叙,无论UTF8 UTF16 UTF32哪种编码形式,都可以表达世界所有可能的字符。与此同时,由于字符存储长度不确定,传统的通过字符个数直接定位存储空间的方法变得不可用(例如, Str[20]这种读写方式),这也是为什么很多语言搞出一个只读的字符串类型的原因之一。
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2017/3/17 10:23:11
15楼: 我已经说了 我水平低啊。
我在 5 楼 说了 我对 unicode 的理解。
而且 EMB 公司也样。
你不信去看 UnicodeString 的定义。 EMB 可没说 这个类型 是你说的那么好几种的意思。

如果你想知道一个字符串内有多少个字符,请转成 UCS4 字符串。
EMB 转出来的 UCS4 默认是带 #0 的。
----------------------------------------------
(C)(P)Flying Wang
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行20.01953毫秒 RSS