﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-一江东去, 孤帆遥雁, 结伴而行</title><link>http://www.cnblogs.com/timothy/</link><description /><language>zh-cn</language><lastBuildDate>Mon, 06 Jul 2009 12:42:37 GMT</lastBuildDate><pubDate>Mon, 06 Jul 2009 12:42:37 GMT</pubDate><ttl>60</ttl><item><title>关注低功耗主机</title><link>http://www.cnblogs.com/timothy/archive/2009/03/10/1408144.html</link><dc:creator>云在青天水在瓶</dc:creator><author>云在青天水在瓶</author><pubDate>Tue, 10 Mar 2009 11:57:00 GMT</pubDate><guid>http://www.cnblogs.com/timothy/archive/2009/03/10/1408144.html</guid><wfw:comment>http://www.cnblogs.com/timothy/comments/1408144.html</wfw:comment><comments>http://www.cnblogs.com/timothy/archive/2009/03/10/1408144.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/timothy/comments/commentRss/1408144.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/timothy/services/trackbacks/1408144.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<p>1， 威盛： 威盛芯板平台--Mm2500</p>
<p>2， 华硕EeeBox：英特尔 N270 + Intel 945GMS （集成Intel GMA950芯片）</p>
<p>3， 英特尔套装： Atom 330双核心处理器 + D945GCLF2 主板 </p>
<img src ="http://www.cnblogs.com/timothy/aggbug/1408144.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/48008/" target="_blank">IBM发布全球首款开源智能编译器</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>一种难以名状的忧伤－－Never Grow Old</title><link>http://www.cnblogs.com/timothy/archive/2007/08/21/864272.html</link><dc:creator>云在青天水在瓶</dc:creator><author>云在青天水在瓶</author><pubDate>Tue, 21 Aug 2007 09:49:00 GMT</pubDate><guid>http://www.cnblogs.com/timothy/archive/2007/08/21/864272.html</guid><wfw:comment>http://www.cnblogs.com/timothy/comments/864272.html</wfw:comment><comments>http://www.cnblogs.com/timothy/archive/2007/08/21/864272.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/timothy/comments/commentRss/864272.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/timothy/services/trackbacks/864272.html</trackback:ping><description><![CDATA[简洁的歌词，低迷，略带颓废的曲调，正好符合我现在的心情。喜欢！<br />
<br />
The Cranberries，小红莓合唱团，来自爱尔兰的四人团体。主唱Dolores独特的唱腔，有时柔弱轻快，有时强力的呐喊，吸引了世界无数的乐迷，他们以爱尔兰式neo-folk 的音乐风格，细腻的舒情歌，忧虑愁怅的旋律，唱出他们崇尚和平，关怀世界的理念。<br />
<p align="left"><font face="Arial">Never grow old&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;by&nbsp; &nbsp;the<em>Cranberries</em></font></p>
<p><font face="Arial"><img id="517914" alt="" hspace="0" src="http://www.chinadaily.com.cn/language_tips/att/site1/20070601/xin_180604010838027295544.jpg" align="right" border="0" md5="" />I had a dream<br />
Strange it may seem<br />
It was my perfect day</font></p>
<p><font face="Arial">Open my eyes<br />
I realize<br />
This is my perfect day</font></p>
<p><font face="Arial">Hope you never grow old<br />
Hope you never grow old<br />
Hope you never grow old<br />
Hope you never grow old</font></p>
<p><font face="Arial">Do-do-do-do<br />
&#8230;</font></p>
<p><font face="Arial">Birds in the sky<br />
They look so high<br />
This is my perfect day</font></p>
<p><font face="Arial">I feel the breeze<br />
I feel it is<br />
It is my perfect day</font></p>
<p><font face="Arial">Hope you never grow old<br />
Hope you never grow old<br />
<img id="517915" alt="" hspace="0" src="http://www.chinadaily.com.cn/language_tips/att/site1/20070601/xin_180604010838480252045.jpg" align="right" border="0" md5="" />Hope you never grow old<br />
Hope you never grow old</font></p>
<p><font face="Arial">Forever young<br />
I hope you stay<br />
Forever young</font></p>
<p><font face="Arial">Do-do-do-do<br />
&#8230;<br />
<br />
<img id="517916" alt="" hspace="0" src="http://www.chinadaily.com.cn/language_tips/att/site1/20060314/xin_2703031420399412111818.gif" align="baseline" border="0" md5="" /><font face="Arial"><strong>&nbsp;&nbsp;&nbsp; 中文歌词</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></font></p>
<p>青春永不老&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<em>小红莓/卡百利</em><br />
<br />
我做了一个梦<br />
现在看来有点怪的梦<br />
那天是我生命中的完美</p>
<p>睁开双眼<br />
我发现<br />
这天很完美</p>
<p>希望你永远年轻<br />
希望你永远年轻<br />
希望你永远年轻<br />
希望你永远年轻</p>
<p><img id="517917" alt="" hspace="0" src="http://www.chinadaily.com.cn/language_tips/att/site1/20070601/xin_180604010838933195156.jpg" align="right" border="0" md5="" />鸟儿在空中翱翔<br />
它们飞的好高<br />
这天很完美</p>
<p>微风轻拂<br />
我安闲自在<br />
这天很完美</p>
<p>希望你永远年轻<br />
希望你永远年轻<br />
希望你永远年轻<br />
希望你永远年轻</p>
<p align="left">永远年轻<br />
我希望你<br />
青春永驻<br />
<br />
<br />
<object codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701standby=Loading" type="application/x-oleobject" height="360" hspace="5" width="480" align="center" vspace="5" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" components... Player Media? Windows Microsoft?>
<param name="URL" value="http://language.chinadaily.com.cn/audio/song/NeverGrowsOld.mp3" /><param name="rate" value="1" /><param name="balance" value="0" /><param name="currentPosition" value="11.40975" /><param name="defaultFrame" value="" /><param name="playCount" value="1" /><param name="autoStart" value="-1" /><param name="currentMarker" value="0" /><param name="invokeURLs" value="-1" /><param name="baseURL" value="" /><param name="volume" value="50" /><param name="mute" value="0" /><param name="uiMode" value="full" /><param name="stretchToFit" value="0" /><param name="windowlessVideo" value="0" /><param name="enabled" value="-1" /><param name="enableContextMenu" value="-1" /><param name="fullScreen" value="0" /><param name="SAMIStyle" value="" /><param name="SAMILang" value="" /><param name="SAMIFilename" value="" /><param name="captioningID" value="" /><param name="enableErrorDialogs" value="0" /><param name="_cx" value="12700" /><param name="_cy" value="9525" /></object></p>
<center><br />
<br />
&nbsp;</center><br />
<br />
<img src ="http://www.cnblogs.com/timothy/aggbug/864272.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/48007/" target="_blank">IE颓势不减 微软下月公布最新浏览器架构</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>转－在日本最受欢迎的TOP20智能手机特性</title><link>http://www.cnblogs.com/timothy/archive/2007/06/20/790202.html</link><dc:creator>云在青天水在瓶</dc:creator><author>云在青天水在瓶</author><pubDate>Wed, 20 Jun 2007 03:50:00 GMT</pubDate><guid>http://www.cnblogs.com/timothy/archive/2007/06/20/790202.html</guid><wfw:comment>http://www.cnblogs.com/timothy/comments/790202.html</wfw:comment><comments>http://www.cnblogs.com/timothy/archive/2007/06/20/790202.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/timothy/comments/commentRss/790202.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/timothy/services/trackbacks/790202.html</trackback:ping><description><![CDATA[<div>今年5月，Symbian发表了它的调查报告。</div>
<div>
<div align=left FORIMG="1"></div>
<div align=left FORIMG="1">
<h2><a href="http://www.symbian.com/j20/ss31.html"></a><font style="FONT-FAMILY: Arial">Top 20 Japanese smartphone features</font></h2>
<p>1. mobile wallet&nbsp;&nbsp;&nbsp; 手机钱包<br>2. MANGA on mobile&nbsp;&nbsp;&nbsp; 手机漫画<br>3. mobile check-in at airports&nbsp;&nbsp;&nbsp; 手机电子登机牌<br>4. mobile keys for door&nbsp;&nbsp;&nbsp; 手机电子门锁<br>5. mobile employee badges&nbsp;&nbsp;&nbsp; 移动员工徽章/证件<br>6. mobile cinema tickets&nbsp;&nbsp;&nbsp; 手机电影票<br>7. mobile transport passes&nbsp;&nbsp;&nbsp; 手机护照/通行证<br>8. fingerprint authentication&nbsp;&nbsp;&nbsp; 指纹识别/身份鉴定<br>9. face recognition/authentication&nbsp;&nbsp;&nbsp; 面部识别/身份鉴定<br>10. mobile discount/promotion coupons&nbsp;&nbsp;&nbsp; 手机折扣券/促销券<br>11. scented phones&nbsp;&nbsp;&nbsp; 芳香手机<br>12. mobile fashion consultant&nbsp;&nbsp;&nbsp; 手机时尚咨询顾问<br>13. mobile live TV&nbsp;&nbsp;&nbsp; 手机直播电视<br>14. wii-like mobile phones (motion-sensor)&nbsp;&nbsp;&nbsp; 类似Wii的动作感应手机<br>15. physical bookmarks for mobiles (shops)&nbsp;&nbsp; 移动书签<br>16. privacy screens&nbsp;&nbsp;&nbsp; 私密屏幕<br>17. 1D and 2D codes for marketing and even on fruit and veg labels&nbsp;&nbsp;&nbsp; 1D/2D条形码识别<br>18. mobile GPS navigation for pedestrians&nbsp;&nbsp;&nbsp; 移动GPS导航<br>19. electric wave posters (uses RFiD)&nbsp;&nbsp;&nbsp; 内嵌RFID的电子海报<br>20. waterproof phones&nbsp;&nbsp;&nbsp; 防水手机</p>
</div>
</div>
<img src ="http://www.cnblogs.com/timothy/aggbug/790202.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/48002/" target="_blank">竞争日趋激烈 微软欲借 Windows 7 扭转战局</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>一首非常迷人的爱尔兰民谣 － Danny Boy </title><link>http://www.cnblogs.com/timothy/archive/2007/06/19/789002.html</link><dc:creator>云在青天水在瓶</dc:creator><author>云在青天水在瓶</author><pubDate>Tue, 19 Jun 2007 06:28:00 GMT</pubDate><guid>http://www.cnblogs.com/timothy/archive/2007/06/19/789002.html</guid><wfw:comment>http://www.cnblogs.com/timothy/comments/789002.html</wfw:comment><comments>http://www.cnblogs.com/timothy/archive/2007/06/19/789002.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/timothy/comments/commentRss/789002.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/timothy/services/trackbacks/789002.html</trackback:ping><description><![CDATA[<br><span style="LINE-HEIGHT: 15pt">一首爱尔兰民谣，原是一个世纪前，一位爱尔兰父亲写给即将从军的儿子，告诉他说，当你下次回来的时候，我大概已经躺在坟里，就像整个夏天的过去，花朵的凋零，就像你现在要走，也不能挽留。后来，作者又加上第四段，才使得这首歌由父子间的决别，变成了好似情人的分手。<br>这首Declan Galbraith演唱的版本，没有人工刻凿的童声透明的声音，带着淡淡的伤感，远远的衬着悠扬的风笛声，仿佛看到了那方白色坟墓</span><br><br>
<div class=MusicPlayerTd_1_2><iframe id=playMusicIframe name=playMusicIframe src="http://music.hexun.com/PlayMedia.aspx?CID=1&amp;MID=625723&amp;FileUrl=http://www.mblue.cn/music/dannyboy.wma" frameBorder=0 noResize width=300 scrolling=no height=64>
</iframe></div>
<br>"有一种声音,穿透时空的魔力,将灵魂融入在跳动的音符中,在不安的岁月中,唱一首叫做生命的歌"。<br><br>视频： <a href="http://www.youtube.com/watch?v=h03iH-Bsvj8">http://www.youtube.com/watch?v=h03iH-Bsvj8</a><br><br><br>整首歌的旋律彷彿夏日將盡的原野上遙遠傳來的風笛, 如怨如慕, 輕輕撩起你一生最珍惜的記憶 <br>　　 <br>　　這首愛爾蘭民謠的歌詞, 尤其帶有一種特殊的感人心魄. <br>　　 <br>　　Oh Danny boy, the pipes, the pipes are calling <br>　　From glen to glen, and down the mountain side <br>　　The summer&#8216;s gone, and all the flowers are dying <br>　　&#8216;Tis you, &#8216;tis you must go and I must bide <br>　　 <br>　　噢！丹尼少年，笛聲正在召喚 <br>　　從山谷間到山的另一邊 <br>　　夏天已走遠，花兒都已枯萎 <br>　　你得離去，而我得等待 <br>　　 <br>　　But come you back when summer&#8216;s in the meadow <br>　　Or when the valley&#8216;s hushed and white with snow <br>　　&#8216;Tis I&#8216;ll be there in sunshine or in shadow <br>　　Oh Danny boy, oh Danny boy, I love you so <br>　　 <br>　　但你回來了，當夏天回到草原上的時候 <br>　　或是當山谷沉靜下來，因雪而白了頭的時候 <br>　　我一定會去那兒，不論是陽光普照或陰影覆蓋 <br>　　噢！丹尼少年，我是多麼的愛你 <br>　　 <br>　　And if you come, when all the flowers are dying <br>　　And I am dead, as dead I well may be <br>　　You&#8216;ll come and find the place where I am lying <br>　　And kneel and say an "Ave" there for me <br>　　 <br>　　如果你在百花凋謝的時候前來 <br>　　而我已經死去，死的很安詳 <br>　　你會前來，找到我長眠之地 <br>　　跪下來和我說"再見" <br>　　 <br>　　And I shall hear, tho&#8216; soft you tread above me <br>　　And all my dreams will warm and sweeter be <br>　　If you&#8216;ll not fail to tell me that you love me <br>　　I simply sleep in peace until you come to me <br>　　 <br>　　我會傾聽，雖然你輕柔的踩在我上面 <br>　　我的夢將會更溫暖而甜蜜 <br>　　如果你真的對我說你愛我 <br>　　我會在平靜中安息，直到你來我身邊 <br><br>
<div>还有一个翻译版本，好象更压韵，唱起来也更上口一些。 <br><br>亲爱的，你听那风笛吹响， <br>飘过群山，在峡谷里回荡。 <br>夏日消逝，玫瑰花不再开放， <br>你要远去，留我独自悲伤。 <br><br>你何时归来，带回明媚阳光， <br>或当山谷一片白雪茫茫。 <br>我会等你，不论寒来暑往， <br>亲爱的，我永远把你放在心上。 <br><br>当你归来，我已不在世上， <br>就象花瓣飘落一样安详。 <br>你是否能找到我安息的地方， <br>对我说你爱我，不管人间天上。 <br><br>我会听到你最轻微的声响， <br>给我梦里送来温暖光芒。 <br>你要回来呀，不论山高水长， <br>记得我在等你，在幽冥之乡。<br><br><br>
<div>推荐版本： <br><br>http://www.cncie.com/bbs/images/upload/2005/06/05/192229.mp3 <br>Declan Galbraith <br><br>http://www.folkmusic.com.tw/Danny Boy.wma <br>男声合唱 <br>　 <br>http://220.90.131.135/home52/music/ddannyboy.mp3 <br>Nana Mouskouri (专辑：Songs Of The British Isles） <br><br>http://www.mgff.com/UploadFile/2004-11/200411313457262.mp3 <br>Jacintha （专辑：亚太之声 爵士风格 ） <br>http://202.101.18.133:7777/songnan/upload/2_442.mp3 <br>DIANA KRALL（专辑：Tears Of Stone-The Chieftains） <br><br>http://music.ewen.cc/wma/n00000047/n0000004715.wma <br>Elvis Presley（猫王版） <br><br>http://www.mblue.cn/music/dannyboy.wma <br>Andy Williams （ 抒情流行版） <br><br>http://wma2.7t7t.com//pycs/L/2005519/10132/3692018.Wma <br>Lim Hyung Joo林贤珠 <br><br>http://church.catholic.or.kr/tangsan/music/pop/p14.wma <br>Slim Whitman （乡村风格版1） <br><br>http://bbs.51soft.com/mymusic/gam/b10.mp3 <br>Johny Cash （乡村风格版2） <br><br>http://music.qingyinyue.com/newotherwma/Jarrell's Cove/32-wma/02-Danny Boy.wma <br>钢琴版. <br>　 <br>http://www.coolhot.cn/680/13/DannyBoy/DannyBoy.mp3 <br>竖琴长笛版 <br>　 <br>http://boisfrancs2.homestead.com/Eric_clapton_-_Oh_Danny_Boy__Instrumental_.mp3 <br>吉他大师Eric Clapton版　 <br><br>http://202.107.197.182/gygzs-qy/liulupipa/danny boy.MP3 <br>琵琶吉他流行版 <br></div>
</div>
<img src ="http://www.cnblogs.com/timothy/aggbug/789002.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/48001/" target="_blank">上海电信计划2012年80%用户实现100M带宽</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>转－逻辑哲学论-维特根斯坦(1889-1951) </title><link>http://www.cnblogs.com/timothy/archive/2007/05/18/751460.html</link><dc:creator>云在青天水在瓶</dc:creator><author>云在青天水在瓶</author><pubDate>Fri, 18 May 2007 06:11:00 GMT</pubDate><guid>http://www.cnblogs.com/timothy/archive/2007/05/18/751460.html</guid><wfw:comment>http://www.cnblogs.com/timothy/comments/751460.html</wfw:comment><comments>http://www.cnblogs.com/timothy/archive/2007/05/18/751460.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/timothy/comments/commentRss/751460.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/timothy/services/trackbacks/751460.html</trackback:ping><description><![CDATA[<div class=postTitle>摘自<a href="http://kavenmo.cnblogs.com/archive/2004/09/30/48197.html">http://kavenmo.cnblogs.com/archive/2004/09/30/48197.html</a><br></div>
<div class=postText>
<div class=postText></div>
<div class=postText><font color=#004080>1 世界就是所有为真的一切。 <br>( The world is everything that is the case) <br><br></font>　　这里，&#8220;is the case&#8221; 即 &#8220;is true or correct&#8221;，也就是我们在数理逻辑中所说的那个&#8220;真&#8221;，是世界的实际情况。 <br><br>　　接下来是对 1 这句话的进一步说明：<br><br><font color=#004080>1.1 世界是所有事实，而非事物，的总和。 <br>(The world is the totality of facts，not of things )</font><br><br>　　对 1.1 这句话又作了进一步说明： </div>
<p class=postText><font color=#004080>1.11 世界是由事实所决定的，并且由全部事实所决定。<br>(The world is determined by the facts, and by these being all the facts.)<br><br>1.12 因为事实的总和既断定了什么是真的，也断定了什么不是真的。<br>(For the totality of facts determines both what is the case, and also all that is not the case.) <br><br>1.13 逻辑空间中的事实(所有为真的)就是整个世界<br>(The facts in logical space are the world) <br><br>1.2 世界可以分解为事实<br>( The world divides into facts。)<br><br>1.2.1 任一事实或者为真，或者不为真，其它所有事实皆然。<br>(Any one can either be the case or not be the case, and everything else remains the same.)<br></font><br>　　*******************************************************************<br>　　小结1: 1 主要想说明 --- 世界由实际发生的一切事实(facts)所组成。<br>　　*******************************************************************<br><br>　　第二节</p>
<p class=postText><font color=#004080>2 那些为真的事实，是由原子事实组成的。<br>(What is the case，the fact, is the existence of atomic facts.)<br><br>2.01 一个原子事实是多个对象(或实体，事物)的组合。( object !!)<br>(An atomic fact is a combination of objects(entities，things.)<br><br>2.011 事物的一个基本性质就是，它可以成为某个原子事实的一个组成部分<br>(It is essential to a thing that it can be a constitute part of an atomic fact)<br>......<br><br>2.013 每个事物都是，正如假设的那样，处于一个由可能的原子事实空间之中；我可以<br>想象这样的空间为空，我却无法想象一个无原子事实空间可依的事物。<br>(Everything is, as it were, in a space of possible atomic facts; I can think of this space as empty, but not of the thing without the space.)<br><br>2.014 对象包含了事务的全部状态的可能性(?)<br>(Objects contain the possibility of all states of affairs) <br>.......<br><br>2.02 对象是简单的(基本的)<br>(The Object is simple.)<br><br>2.0201 每个关于复杂事物的陈述都可以分解为对其组成部分的陈述，而且能被分解成能完全描述这些复杂事物的陈述。<br>(Every statement about complexes can be analysed into a statement about their constituent parts, and into those propositions which completely describe the complexse.)<br><br>2.021 对象形成了世界的基础。因而它们不会是复合物。<br>(Objects form the substance of the world.&nbsp; Therefore they cannnot be compound.)<br><br>2.022 尽管我们主观想象中的世界和现实的客观世界是不同的，但是它们之间显然有些东西——一种模式——是相同的。<br>(It is clear that however different from the real one an imagined world may be<br>it must have somthing -- a form -- in common with the real world。)<br><br>2.023 这种固定不变的模式由对象组成。<br>(This fixed form consists of the objects)<br></font><br>　　例如: 我们在头脑中想象出来 "一个人骑着一辆自行车" 这幅情景和客观世界中实际发生的情景可能是不是完全相同的，但它们二者之间都具有一种相同的结构: 人——骑——自行车正是由于这个相同的结构，我们的主观世界才和客观世界发生了一致的联系，我们的表达才成为可能。 这个结构，是由更简单的对象组成的，如人，自行车。<br><font color=#004080>......<br><br>2.026 只有存在对象，才能有一个固定模式的世界的存在。<br>(Only if there are objects can there be a fixed form of the world)<br><br>2.03 在原子事实中，对象如一条锁链相互连接。<br>(In the atomic fact objects hang one in another，like the links of a chain)<br><br>2.031 在原子事实中，对象以某种确定的方式相连。<br>(In the atomic fact the objects are combined in a difinite way)<br><br>2.032 原子事实中对象相互连接的方式即是原子事实的结构<br>(The way in which objects hang together in the atomic fact is <br>the structure of the atomic fact)<br>......<br><br>2.034 事实的结构存在于原子事实的结构之中 <br>(The structure of the fact consists in the structures of the atomic facts)<br><br>2.04 存在的原子事实的总和即是世界<br>(The totality of existent atomic facts is the world)<br><br>2.05 存在的原子事实的总和也确定了那些原子事实不存在<br>(The totality of existence atomic facts also determines which atomic facts do not exist) <br>......<br><br>2.1 我们为自己产生事实的图画。<br>(We make to ourselves picturesof facts) <br><br>　　</font><font color=#000000>说明: 指我们的主观世界中产生一幅客观世界的图画，即主观对客观的认识图景。</font><font color=#004080><br><br>2.12 那图画是现实的模型<br>The picture is a model of reality.<br><br>2.13 对象(现实世界中的)对应于那图画中的各元素。 <br>To the objects correspond in the picture the elememts of the picture.<br><br>2.131 那图画中的各元素代表对象(现实世界中的)<br>The elements of picture stand，in the picture，for the objects.<br><br>2.14 那图画的存在是由于这样一个事实: 它的各元素之间以某种固定方式相结合。<br>The picture consists in the fact that its elements are combined <br>with one another in a difinite way.<br><br>2.141 那图画即是一个事实<br>The picture is a fact.<br><br>2.15 那图画的各元素以某种固定方式相结合，代表了事物(现实世界的)也是如此相结合的。 <br>那图画的各元素的结合方式称为该图画的结构，该结构也称为该图画的表达模式。<br>That the elements of the picture are combined with one another in a difinite way，<br>represents that the things are so combined with one another. This connexion of the elements of the picture is called its structure，and the possibility of this structure is called the form of representation of the picture.<br>......<br><br>2.1511 这样，那图画与现实就联系起来了。 那图画就逼近现实了。<br>Thus the picture is linked with reality；it reaches up to it.<br><br>2.1512 它就象是现实按比例缩小的图形。<br>It is like a scale applied to reality.<br>......<br><br>2.16 事实要想表达为图画，该图画和它之间必定要存在某种共同之处。<br>In order to be a picture a fact must have somthing in common with what it pictures.<br>......<br><br>2.17 为了能够代表现实---正确或错误的---图画必须与现实保持一致的东西，是它的表达模式。<br>What the picture must have in common with reality in order to be able to represent after its manner---rightly or falsely -- is its form of representation.<br>......<br><br>2.172 那图画却无法表达它自己的表达模式。 它只是将其径直显现出来。<br>The picture，however，cannot represent its form of representation. It shows it forth.<br>......<br><br>2.18 为了能够代表现实---正确或错误的---无论何种模式的图画，它必须与现实保持一致的东西，是逻辑结构，即: 现实世界的模式。<br>What every picture，of whatever form，must have in common with reality in order to be able to represent it at all---rightly or falsely -- is the logical form，that is，the form of reality.<br><br>2.181 如果那表达模式是逻辑的模式，那么那图画也可以称为一幅逻辑图。<br>If the form of representation is the logical form，then the picture is called a logical picture.<br><br>2.182 每一副图也是一幅逻辑图。 (另一方面，并非每副图都是空间图)<br>Every picture is also a logical picture.(On the other hand，for example，not every pivture is spatial)<br><br>　　</font><font color=#000000>说明: 主要强调此处的 picture(与现实世界逻辑上同构) 与 通常我们所说的picture(现实世界的空间结构描述图)不同。 </font><font color=#004080><br><br>2.19 逻辑图可以描述现实世界。<br>The logical picture can dipict the world.<br><br>2.2 那图画与它所描述的具有相同的逻辑表达模式<br>The picture has the logical form of representation in common with what it pictures.<br><br>2.21 那图画与现实或者一致，或者不一致；它或者正确，或者错误；或者为真，或者为假。<br>The picture agrees with reality or not；it is right or wrong；true or false.<br><br></font><font color=#000000>　　说明：&#8220;1998年5月12号北京下雨了&#8221; 和 &#8220;1998年5月12号北京没下雨&#8221; 都是一幅picture，它们的逻辑结构，或者说表达模式，完全相同，但其真值不同。</font><font color=#004080><br><br>2.22 那图画通过表达模式来描述世界，独立于它的真假。<br>The picture represents what it represents ，indepently of its truth or falsehood，<br>through the form of representation.<br><br>2.221 那图画表达的是它的实际意思。<br>What the picture represents is its senses.<br><br>2.222 它的实际意思与现实相符或者不相符，从而它为真或者为假。<br>In the agreement or disagreement of its sense with reality，<br>its truth or falsity consists.<br><br>2.223 要想知道图画是真还是假，必须将其与现实世界进行比较。<br>In order to discover whether the picture is true or false we must compare <br>it with reality.<br></font>......<br><br>　　******************************************************************************<br>　　小结2: 2　主要说明 --- 事实(facts)由原子事实(atomic facts)所组成；<br>　　　　　　　原子事实(atomic facts)由更基本的对象(objects)所组成；<br>　　　　　　　我们的关于外部世界的主观描述图画，与它所描述的外部世界具有相同的逻辑<br>　　　　　　　结构；注: (这即是相当于软件开发中的"建模") <br>　　******************************************************************************<br><br>　　第三节 <br><br><font color=#004080>3 事实的逻辑图画就是思想。 <br>The logical picture of the facts is the thought.<br><br>3.01 所有真的思想的总和就构成了整个现实世界一幅图画。<br>The totality of true thoughts is a picture of the world.<br><br>3.02 ......所有能被想象的也是可能的。<br>......What is thinkable is also possible.<br><br>3.03 我们不能想象出不合逻辑的东西，因为那样一来我们将不得不进行不合逻辑的思维。<br>We cannot think anything unlogical，for otherwise we should have to think unlogically.<br></font>......<br><br>　　******************************************************************************<br>　　小结3: 3　主要说明 --- 我们的思想也是以上述图画方式来反映客观世界的<br>　　　　　　　我们的思想与客观世界是逻辑同构的<br>　　******************************************************************************</p>
<p class=postText>　　第四节 <br><br><font color=#004080>4 思想是有意义的命题<br>The thought is the significant proposition.<br><br>4.01 命题是现实的图画。 命题是我们想象的现实的模型。<br>The proposition is a picture of reality.<br>The proposition is a model of the reality as we think it is.<br>......<br><br>4.1 一个命题给出了一个原子事实的存在或是不存在。<br>A porposition presents the existence and non-existence of atomiac facts.<br><br>4.11 真命题的总体就是整个自然科学<br>The totality of true propositions is the total natural science.<br>......<br><br>4.112 哲学的目标就是澄清思想。<br>　　　哲学不是一个理论，而是一种活动。哲学工作就是去阐明。<br>　　　哲学的结果不是一些"哲学命题"，而是使命题清晰。<br>The object of philosophy is the logical clarification of thoughts.<br>Philosophy is not a theory but an activity.<br>A philosophy work consists essentially of elucidations.<br>The results of philosophy is not a number of "philosophy propositions"，<br>but to make propositions clear.<br>......<br><br>4.113 哲学划定自然科学可以争论的范围。<br>Philosophy limits the disputable sphere of natural science.<br><br>4.114 它应该划定什么是可思考的，因而也就划定了什么是不可思考的。<br>It should limit the unthinkable and thereby the unthinkable.<br><br>4.115 它将清楚地指出什么是可以言说的，从而也就指出了什么是不可言说的。<br>It will mean the unspeakable by clearly displaying the speakable.<br><br>4.116 凡是可以被思考的，都可以被清楚地思考；<br>　　　凡是可以被言说的，都可以被清楚地言说；<br>Everything that can be thought at all can be thought clearly.<br>Everything that can be said can be said clearly.<br>......</font><br><br>　　*******************************************************************************<br>　　小结4: 4　主要说明 --- 详细介绍了思想如何借助逻辑来反映世界；<br>　　　　　　　指出了哲学的目标就是澄清思想，哲学不是一个理论，而是一种活动。<br>　　　　　　　它应该划定什么是可思考的，因而也就划定了什么是不可思考的。<br>　　*******************************************************************************</p>
<p class=postText>　　第五节 </p>
<p class=postText><font color=#004080>5 命题是基本命题的真值函数<br>Propositions are truth-functions of elementary propositions.<br>......<br><br>5.6 我的语言的极限就是我的世界的极限<br>The limits of my language mean the limits of my world.<br><br>5.6.1 逻辑充满整个世界: 世界的极限也就是逻辑的极限所在<br>Logic fills the world: the limits of the world are also its limits.<br>......<br>我们无法思考的东西，我们就不能思考: 因此我们不能说出我们无法思考的东西。 <br>What we cannot think，that we cannot think；we cannot therefore say What we cannot think.<br>......<br><br>5.6.3 我即是世界。(小宇宙) <br>I am the world。(microcosm)<br><br></font>　　说明: 吾心即是宇宙。 :-) <br><br>　　*******************************************************************************<br>　　小结5: 5　主要说明 --- 进一步阐明了作者的逻辑原子主义立场<br>　　　　　　　指出人只有借助语言才能思考，主观只有借助语言才能反映客观世界<br>　　　　　　　语言的极限就是世界的极限<br>　　*******************************************************************************</p>
<p class=postText>　　第六节 </p>
<p class=postText><font color=#004080>......<br><br>6.41 世界的意义必定存在于世界之外。<br>The sense of the world must lie outside the world.<br><br>6.42 因而也就没有什么伦理学命题。<br>Hence also there can be no ethical propositions.<br><br>6.421 显然伦理学是无法表述的。 伦理学是超越现实的。 (伦理学和美学是一样的)<br>It is clear that ethics cannot be expressed.<br>Ethics is transcendental. (Ethics and aesthetics are one.)<br>......<br><br>6.432 世界如何存在，是与更高级的东西毫不相干的；上帝并不在世界中显现。<br>How the world is ，is completely indifferent for what is higher；<br>God does not reveal himself in the world.<br><br>6.44 世界如何存在，并不神秘；神秘的是它的存在本身。 <br>Not how the world is ，is the mystical，but it is.<br>......<br><br>6.52 我们感到即便是所有的自然科学问题都被解答了，生活的意义仍然未被触及丝毫。<br>当然是没有任何问题可言了，这就是答案。<br>We feel that even if all possible scientific questions be answered，then<br>the problem of life have still not been touched at all. Of course there<br>is then no question left，and just this is the answer.<br><br>6.521 生活的意义问题的解决办法就是消除该问题。<br>The solution of the problem of life is seen in the vanishing of this problem.<br><br>6.522 实际上存在着不可表达的东西；这显示了它的存在；它是神秘的。<br>There is indeed the inexpressible。 This shows itself；it is the mystical.<br></font><br>　　说明: 生活的意义是什么? 这个问题在维特根斯坦看来是不可言说的，是无法用现实世界的事实去实证的，因而是无意义的问题，应予以消除。<br><br><font color=#004080>6.53 哲学的正确方法应该是这样的。 除了能够说的东西之外——如自然科学的命题，即与哲学无关的问题——什么都不说；然后当某人想说出一些形而上的东西时，向他指出它的命题中存在着一些毫无意义的符号。 这方法可能不太令人满意——他会感到我们不是在教他哲学——但这是唯一严格的正确方法。<br>The right method of philosophy would be this. To say nothing except what can be said，i.e. the propositions of natural science，i.e. something that have nothing to do with pilosophy: and then always，when someone else wished to say something metaphysical，to demonstrate to him that he has given no meaning to certain signs in his rpopositions. This method would be unsatisfying to the other---he would not have the feeling that we are teaching him philosophy---but it would be the only strictly correct method.<br><br>6.54 我的观点是以这种方式表明的：最终真正理解了我的观点的人，当他通过它们，越过它们并高于它们的时候。会发现它们是毫无意义的，(这样说吧，他必须在爬过梯子之后将其扔掉)<br>My propositions are elucidatory in this way: he who understands me finally recognises them as senseless，when he has climbed out through them，on them，over them.<br>(He must so to speak throw away the ladder，after he has climbed up on it)</font><br><br>　　*******************************************************************************<br>　　小结6: 6　主要说明 --- 阐明了作者的哲学观<br>　　　　　　　哲学的正确方法应该是这样的。 除了能够说的东西之外----什么都不说；<br>　　*******************************************************************************</p>
<p class=postText>　　第七节</p>
<p class=postText><font color=#004080>7 对于那些不可言说的，必须保持沉默。<br>Whereof one cannot speak，thereof one must be silent. </font></p>
</div>
<img src ="http://www.cnblogs.com/timothy/aggbug/751460.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/48000/" target="_blank">数万名网友签名抗议星际争霸2取消局域网功能</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>Website -- Open Source Software in C# (C-Sharp) </title><link>http://www.cnblogs.com/timothy/archive/2006/03/31/363560.html</link><dc:creator>云在青天水在瓶</dc:creator><author>云在青天水在瓶</author><pubDate>Fri, 31 Mar 2006 06:08:00 GMT</pubDate><guid>http://www.cnblogs.com/timothy/archive/2006/03/31/363560.html</guid><wfw:comment>http://www.cnblogs.com/timothy/comments/363560.html</wfw:comment><comments>http://www.cnblogs.com/timothy/archive/2006/03/31/363560.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/timothy/comments/commentRss/363560.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/timothy/services/trackbacks/363560.html</trackback:ping><description><![CDATA[<a href="http://csharp-source.net/">http://csharp-source.net</a><br><a href="http://www.gotdotnet.com/">http://www.gotdotnet.com/</a><br><a href="http://www.codeproject.com/">http://www.codeproject.com</a><br><a href="http://sourceforge.net/">http://sourceforge.net/</a>
<img src ="http://www.cnblogs.com/timothy/aggbug/363560.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47999/" target="_blank">Silverlight打造杰克逊纪念专题</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>一种语言/编码检测的复合方法（转载）</title><link>http://www.cnblogs.com/timothy/archive/2005/11/09/272657.html</link><dc:creator>云在青天水在瓶</dc:creator><author>云在青天水在瓶</author><pubDate>Wed, 09 Nov 2005 14:33:00 GMT</pubDate><guid>http://www.cnblogs.com/timothy/archive/2005/11/09/272657.html</guid><wfw:comment>http://www.cnblogs.com/timothy/comments/272657.html</wfw:comment><comments>http://www.cnblogs.com/timothy/archive/2005/11/09/272657.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/timothy/comments/commentRss/272657.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/timothy/services/trackbacks/272657.html</trackback:ping><description><![CDATA[<P><FONT size=+0>翻译自Mozilla的网站。<BR>这篇论文讨论了组合三种不同的检测方法来实现自动字符集检测。<BR><BR>A composite approach to language/encoding detection)<BR><STRONG>Shanjian Li</STRONG> (</FONT><A href="mailto:shanjian@netscape.com"><FONT size=+0>shanjian@netscape.com</FONT></A><FONT size=+0>)<BR><STRONG>Katsuhiko Momoi</STRONG> (</FONT><A href="mailto:momoi@netscape.com"><FONT size=+0>momoi@netscape.com</FONT></A><FONT size=+0>)<BR><STRONG>Netscape Communications Corp.</STRONG> </FONT></P>
<P><FONT size=+0></P>
<P><FONT size=+0>[<STRONG>注：</STRONG>这篇论文最初发表在</FONT><A href="http://www.unicode.org/iuc/iuc19/program.html" rel=nofollow><FONT size=+0>19届国际Unicode会议</FONT></A><FONT size=+0>(19th International Unicode Conference)(San Jose)。那以后，我们的实现经受住了时间和实际应用的检验，并且，我们还作了许多改进。一个主要的变化是我们现在使用正序列来检测单字节字符集，参见4.7和4.7.1节。这篇论文写于通用字符集检测代码集成到Moailla主代码前(参见第8节)。自此以后，字符集检测代码被合并到了代码树中。如想查看最新的实现，请在</FONT><A href="http://lxr.mozilla.org/seamonkey/source/extensions/universalchardet/src/" rel=nofollow><FONT size=+0>Mozilla的代码树</FONT></A><FONT size=+0>中查看相应代码。作者 - 2002年11月25日。]</FONT></P>
<H3><FONT size=+0>一种语言/编码检测的复合方法</FONT></H3>
<P><FONT size=+0>翻译自Mozilla的网站。<BR>这篇论文讨论了组合三种不同的检测方法来实现自动字符集检测。<BR><BR>A composite approach to language/encoding detection)<BR><STRONG>Shanjian Li</STRONG> (</FONT><A href="mailto:shanjian@netscape.com"><FONT size=+0>shanjian@netscape.com</FONT></A><FONT size=+0>)<BR><STRONG>Katsuhiko Momoi</STRONG> (</FONT><A href="mailto:momoi@netscape.com"><FONT size=+0>momoi@netscape.com</FONT></A><FONT size=+0>)<BR><STRONG>Netscape Communications Corp.</STRONG> </FONT></P>
<P><FONT size=+0></P>
<P><FONT size=+0>[<STRONG>注：</STRONG>这篇论文最初发表在</FONT><A href="http://www.unicode.org/iuc/iuc19/program.html" rel=nofollow><FONT size=+0>19届国际Unicode会议</FONT></A><FONT size=+0>(19th International Unicode Conference)(San Jose)。那以后，我们的实现经受住了时间和实际应用的检验，并且，我们还作了许多改进。一个主要的变化是我们现在使用正序列来检测单字节字符集，参见4.7和4.7.1节。这篇论文写于通用字符集检测代码集成到Moailla主代码前(参见第8节)。自此以后，字符集检测代码被合并到了代码树中。如想查看最新的实现，请在</FONT><A href="http://lxr.mozilla.org/seamonkey/source/extensions/universalchardet/src/" rel=nofollow><FONT size=+0>Mozilla的代码树</FONT></A><FONT size=+0>中查看相应代码。作者 - 2002年11月25日。]</FONT></P>
<P><STRONG><FONT size=+0>1.概要：</FONT></STRONG></P>
<P><FONT size=+0>这篇论文提供三种自动检测的方法来判定无明显字符集声明的文档的编码。我们将分别讨论每种方法的优点和缺点，并且提供了一种复合后的，更有效的方法来检测编码，这样，三种检测方法就可以互为补充。我们认为自动检测在使浏览器用户避免经常使用编码菜单手动选择编码上很有用，同时在编码菜单很少出现的情况下，提供了更合理的处理方式。我们假设，文档转化到Unicode对用户是透明的。无论字符编码采用的是某种Unicode编码还是本地编码，用户仅需知道字符最终显示是正确的就行。好的自动编码检测能有效的帮助用户处理大部分的编码事项，而无需用户手动参与。</FONT></P>
<P><STRONG><FONT size=+0>2.背景：</FONT></STRONG></P>
<P><FONT size=+0>自从进入计算机时代以来，人们创造了许多使用计算机数据表示的编码方案来表达不同的文字/字符集。随着全球化和Internet的发展，跨语言和区域的信息交换越来越重要。但是现存的多种编码方案对此是一个屏障。Unicode提供了通用的编码解决方案，但是，迄今为止，各种各样的因素使它并没有代替现存的区域编码方案。除了W3C和IETF建议使用UTF-8作为缺省编码，比如XML，XHTML，RDF。因此，现今的国际化软件不仅要处理Unicode编码，还要处理其它多种不同的编码方式。</FONT></P>
<P><FONT size=+0>我们当前的工作是在开发Internet浏览器的环境中开展的。为了处理如今Web上使用不同编码的各种语言，我们做了许多努力。为了获取正确的显示结果，浏览器需要利用HTTP服务器返回的编码信息，网页或者是最终用户通过选择编码菜单而得到的编码方式。此外，大部分用户没有能力手动的通过编码菜单来进行操作。如果没有编码信息的话，网页有时就会显示为"垃圾"字符，用户就无法得到他们想要的信息。这最终会导致用户认为他们的浏览器有故障或有Bug。</FONT></P>
<P><FONT size=+0>由于越来越多的Internet标准协议指定Unicode作为缺省的编码方式，网页将会不容置疑的转向使用Unicode来编码。好的通用自动检测方法可以对这种转向提供重要的贡献，因为它们工作很自然，无需用户使用编码菜单。在这种情况下，渐进的转向将会以用户不易察觉的方式进行，这是由于，对用户来说，网页总会显示正确，他们无需考虑使用编码菜单。这种平滑的转变将使编码对用户来说越来越不需要关注。自动检测在这种场景中将很关键。</FONT></P>
<P><STRONG><FONT size=+0>3.问题范围(Problem Scope)：</FONT></STRONG></P>
<P><STRONG><FONT size=+0>3.1. 通用模式</FONT></STRONG></P>
<P><FONT size=+0>让我们从通用的模式开始。对大多数的应用，下面的示例将代表一个自动检测使用的通用框架：</FONT></P>
<P><FONT size=+0>输入数据 -&gt; 自动检测器 -&gt; 返回结果</FONT></P>
<P><FONT size=+0>应用/程序接受自动检测器返回的结果，并且将信息使用在不同用途上，比如，设置数据的编码，显示原始创建者的数据，将它传给其他的程序，等等。</FONT></P>
<P><FONT size=+0>这篇论文中所讨论的自动检测方法使用Internet浏览器作为应用环境，其他的应用也可以很容易的将其移植。</FONT></P>
<P><STRONG><FONT size=+0>3.2. 浏览器和自动检测</FONT></STRONG></P>
<P><FONT size=+0>浏览器可以使用某种检测算法来自动检测网页的编码方式。一个程序可以潜在的在假定不同编码的前提下，对一段文本做出随意的解释，但是，除了一些极端罕见的情况外，只有一种解释才是网页作者想要得。这就是为什么通常对用户来说，只有指定的语言才能正确合理的显示网页。</FONT></P>
<P><FONT size=+0>为了列出设计自动检测算法中的主要因素，我门对输入文本和步骤作如下假定，以网页数据作例，</FONT></P>
<P><FONT size=+0>1.对某种语言来说，输入文本由对读者来说具有可读性的单词/句子组成。(=数据具有非垃圾性)</FONT></P>
<P><FONT size=+0>2.输入文本是从Internet上的典型网页中取得的。(=数据不是从一些消失的或者是古代的语言中取得的)</FONT></P>
<P><FONT size=+0>3.输入文本中有可能包含和编码无关的，额外的噪音数据。比如HTML的标记，无关的单词(如，出现在中文文档中的英文单词)，空格和其它的格式/控制字符。</FONT></P>
<P><FONT size=+0>对自动检测来说，要包含所有已知语言和编码方式几乎是一项无法完成的任务。在现今的方法中，我们试图包含所有东亚语言中常用的编码，同时，对单字符检测也提供了一种通用模式。俄语编码被选择作为后一种检测方法实现的例子，同时也作为单字符检测测试的基础。</FONT></P>
<P><FONT size=+0>4.目标中的多字节编码方式包括 UTF8，Shift-JIS，EUC-JP，GB2312，Big5，EUC-TW，EUC-KR，ISO2022-XX，和HZ。</FONT></P>
<P><FONT size=+0>5.提供一种通用模式来处理单字节编码 - 俄语编码(KOI8-R, ISO8859-5, window1251, Mac-cyrillic, ibm866, ibm855)将作为实现的例子，同时也作为测试基础。</FONT></P>
<P><STRONG><FONT size=+0>4.自动检测的三种方法</FONT></STRONG></P>
<P><STRONG><FONT size=+0>4.1介绍</FONT></STRONG></P>
<P><FONT size=+0>在这一节中，我们讨论三种不同的检测文本数据编码的方法，它们是1)编码模式方法(Coding scheme method，2)字符分布(Character Distribute)，和3)双字符序列分布(2-Char Sequence Distribute)。每种方法单独使用的时候，都有它的长处和不足，如果我们以互补的方式使用所有3种方法的话，结果将是非常理想的。</FONT></P>
<P><FONT size=+0><STRONG>4.2编码模式方法<BR></STRONG><BR>这种方法在检测多字节编码的时候也许是最显而易见的方法，也是通常最容易使用的方法。在任何多字节编码模式中，并不是所有可能的代码点都被使用的。如果在验证特定编码的时候，碰到一个非法字节或非法字节序列(如，无用的代码点)，我们可以立即判断出这种编码猜测不是正确的。一小部分的代码点同样也能代表特定的编码方式，这样，我们也能利用这种事实立即做出正确的判断。Frank Tang(Netscape Communications)开发了一个非常有效的，基于编码模式的，通过使用并行状态机(parallel state machine)来检测字符集的算法。他的基本思想是：</FONT></P>
<P><FONT size=+0>对每一个编码模式，都有一个相应的状态机被用来验证这种特定编码的字节序列。对检测器收到的每一个字节，它将会被输入到每一个可用的，活动的状态机中，每次一个字节。状态机基于前一个状态和它所收到的字节来改变它的状态。自动检测器对状态机的三种状态感兴趣：</FONT></P>
<UL>
<LI><FONT size=+0>START 状态：这种状态代表两种情形，初始化，或是代表字符集的一个合法字节序列已被验证。 </FONT>
<LI><FONT size=+0>ME 状态：这种状态代表状态机验证到了字符集特有的一个字节序列，并且其它可能的字符集不包含这个字节序列。这会导致检测器立即返回一个确定的回答。 </FONT>
<LI><FONT size=+0>ERROR 状态：这种状态代表状态机验证了字符集的一个非法字节序列。这会立即导致对这种字符集的否定回答。检测器从此将会排除这种编码方式，不作考虑。</FONT></LI></UL>
<P><FONT size=+0>在一个典型的例子中，只有一个状态机会作出确定的回答，而其它的状态机会做出的否定的回答。</FONT></P>
<P><FONT size=+0>我们当前工作中使用的PSM(Parallel State Machine)版本是Frank Tang原先工作改造后的版本。只要一个状态机达到START状态，就意味着它成功检测了一个合法的字符序列，我们向状态机查询这种字符序列中总共有多少个字节。这个信息会用在2个方面：</FONT></P>
<UL>
<LI><FONT size=+0>首先，对UTF-8编码方式来说，如果有许多多字节的序列都通过验证的话，输入的数据很少有可能不是采用UTF-8编码的。因此，我们统计UTF-8状态机验证过的多字节数。当达到一个特定的数量时(=阀值)，结论就可以做出了。 </FONT>
<LI><FONT size=+0>其次，对其它的多字节编码来说，这个信息可以输入到字符分布分析器(可以查看下面的介绍)，这样，分析器就可以在字符数据而不是原始数据的基础上进行工作了。</FONT></LI></UL>
<P><STRONG><FONT size=+0>4.3字符分布方法：</FONT></STRONG></P>
<P><FONT size=+0>无论哪种语言，总有一些字符比其它字符更常用。利用这个事实，我们可以对每种语言建立起相应的数据模式。对那些字符数较多的语言，比如汉语，日语和韩语，尤其有用。我们经常听到与此有关的分布统计，但是我们没有找到太多的公布结果。因此，为了继续讨论，我们依赖自己搜集的数据。</FONT></P>
<P><STRONG><FONT size=+0>4.3.1.简体中文：</FONT></STRONG></P>
<P><FONT size=+0>我们对采用GB2312编码的6763个字符研究的结果，显示出如下的分布结果：<BR></FONT></P>
<P>
<TABLE cellSpacing=2 cellPadding=2 width="50%" border=1>
<TBODY>
<TR>
<TD vAlign=top><FONT size=+0><SPAN style="FONT-WEIGHT: bold">Number of Most Frequent Characters</SPAN><BR></FONT></TD>
<TD vAlign=top><FONT size=+0><SPAN style="FONT-WEIGHT: bold">Accumulated Percentage</SPAN><BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>10<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>0.11723<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>64<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>0.31983<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>128<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>0.45298<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>256<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>0.61872<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>512<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>0.79135<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>1024<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>0.92260<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>2048<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>0.98505<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>4096<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>0.99929<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>6763<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>1.00000<BR></FONT></TD></TR></TBODY></TABLE></P>
<P><SPAN style="FONT-WEIGHT: bold"><FONT size=+0></SPAN></P>
<P><SPAN style="FONT-WEIGHT: bold"><FONT size=+0></SPAN></P>
<P><FONT size=+0></P>
<P><FONT size=+0></P>
<P><FONT size=+0></P>
<P><FONT size=+0></P>
<P><FONT size=+0></P>
<P><FONT size=+0></P>
<P><FONT size=+0></P>
<P style="MARGIN-TOP: 6pt"><FONT size=+0><SPAN style="FONT-WEIGHT: bold">&nbsp;&nbsp;&nbsp;&nbsp; Table 1.&nbsp; Simplified Chinese Character Distribution Table<BR><BR></SPAN><STRONG>4.3.2.繁体中文：</STRONG></FONT></P>
<P><FONT size=+0>对于采用Big5编码的繁体中文，台湾普通话推广委员会(Taiwan's Mandarin Promotion Council)年度研究显示了类似的结果。<BR></FONT></P>
<TABLE cellSpacing=2 cellPadding=2 width="50%" border=1>
<TBODY>
<TR>
<TD vAlign=top>
<P><SPAN style="FONT-WEIGHT: bold"><FONT size=+0>Number of Most Frequent Characters</FONT></SPAN></P></TD>
<TD vAlign=top>
<P><SPAN style="FONT-WEIGHT: bold"><FONT size=+0>Accumulated Percentage</FONT></SPAN></P></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>10<BR></FONT></TD>
<TD vAlign=top>
<P><FONT size=+0>0.11713</FONT></P></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>64<BR></FONT></TD>
<TD vAlign=top>
<P><FONT size=+0>0.29612</FONT></P></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>128<BR></FONT></TD>
<TD vAlign=top>
<P><FONT size=+0>0.42261</FONT></P></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>256<BR></FONT></TD>
<TD vAlign=top>
<P><FONT size=+0>0.57851</FONT></P></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>512<BR></FONT></TD>
<TD vAlign=top>
<P><FONT size=+0>0.74851</FONT></P></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>1024<BR></FONT></TD>
<TD vAlign=top>
<P><FONT size=+0>0.89384</FONT></P></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>2048<BR></FONT></TD>
<TD vAlign=top>
<P><FONT size=+0>0.97583</FONT></P></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>4096<BR></FONT></TD>
<TD vAlign=top>
<P><FONT size=+0>0.99910</FONT></P></TD></TR>
<TR>
<TD vAlign=top><BR><FONT size=+0></FONT></TD>
<TD vAlign=top><BR><FONT size=+0></FONT></TD></TR></TBODY></TABLE>
<P><FONT size=+0></P>
<P><FONT size=+0></P>
<P style="MARGIN-TOP: 6pt"><SPAN style="FONT-WEIGHT: bold"><FONT size=+0>&nbsp;&nbsp;&nbsp;&nbsp; Table 2. Traditional Chinese Character Distribution Table</FONT></SPAN></P>
<P><BR><STRONG><FONT size=+0>4.3.3.日语</FONT></STRONG></P>
<P><FONT size=+0>对日语，我们采用自己搜集的数据，并写了一个实用程序来分析它们。下面的表格显示了结果：<BR></FONT></P>
<P>
<TABLE height=472 cellSpacing=2 cellPadding=2 width=232 border=1>
<TBODY>
<TR>
<TD vAlign=top><FONT size=+0><SPAN style="FONT-WEIGHT: bold">Number of Most Frequent Characters</SPAN><BR></FONT></TD>
<TD vAlign=top><FONT size=+0><SPAN style="FONT-WEIGHT: bold">Accumulated Percentage</SPAN><BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>10<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>0.27098<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>64<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>0.66722<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>128<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>0.77094<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>256<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>0.85710<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>512<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>0.92635<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>1024<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>0.97130<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>2048<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>0.99431<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>4096<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>0.99981<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0><BR></FONT></TD>
<TD vAlign=top><FONT size=+0>1.00000<BR></FONT></TD></TR></TBODY></TABLE></P>
<P><FONT size=+0></P>
<P><FONT size=+0></P>
<P><FONT size=+0></P>
<P style="MARGIN-TOP: 6pt"><SPAN style="FONT-WEIGHT: bold"><FONT size=+0>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Table 3.&nbsp; Japanese Character Distribution Table</FONT></SPAN></P>
<P><BR><STRONG><FONT size=+0>4.3.4.韩语</FONT></STRONG></P>
<P><FONT size=+0>同样，对于韩语，我们采用自己从Internet上搜集的数据，并用我们自己的实用程序分析它们，结果如下：<BR></FONT></P>
<P>
<TABLE cellSpacing=2 cellPadding=2 width="50%" border=1>
<TBODY>
<TR>
<TD vAlign=top><FONT size=+0>Number of Most Frequent Characters<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>Accumulated Percentage<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>10<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>0.25620<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>64<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>0.64293<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>128<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>0.79290<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>256<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>0.92329<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>512<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>0.98653<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>1024<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>0.99944<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>2048<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>0.99999<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0>4096<BR></FONT></TD>
<TD vAlign=top><FONT size=+0>0.99999<BR></FONT></TD></TR>
<TR>
<TD vAlign=top><FONT size=+0><BR></FONT></TD>
<TD vAlign=top><FONT size=+0><BR></FONT></TD></TR></TBODY></TABLE></P>
<P><FONT size=+0></P>
<P><FONT size=+0></P>
<P style="MARGIN-TOP: 6pt"><FONT size=+0><SPAN style="FONT-WEIGHT: bold">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Table 4.&nbsp; Korean Character Distribution Table<BR></SPAN><BR><STRONG>4.4.分布结果的通用特性：</STRONG></FONT></P>
<P><FONT size=+0>对所有4种语言，我们发现在我们定义的应用范围内，很少一部分的编码点占据了较大的百分比。此外，对这些代码点的更进一步的考察显示它们散布在一个很广的编码范围中。这给了我们克服在编码模式分析中遇到的通用问题的一种途径，如，不同国家的编码有可能共享一些相互重叠的代码点。由于这些语言中最常出现的字符集具有我们上面描述的特性，因此，在编码模式方法中不同编码有相互重叠的问题，将在分布方法中变得无关紧要了。</FONT></P>
<P><STRONG><FONT size=+0>4.5.分析算法</FONT></STRONG></P>
<P><FONT size=+0>为了验证某个语言基于字符出现频率/分布的统计特性，我们需要一个从文本输入流中计算出一个数值的算法。这个数值将表明文本是某种字符集编码的可能性。一个很直观的做法是用每个字符的出现频率权重来计算这个值。不过，从我们对不同字符编码的经验上，我们发现这种做法并不是必须的，而且它占用了太多CPU处理能力和过多的内存。一个简单的版本同样提供了很令人满意的结果，并且使用非常少的资源，同时运行得很快。</FONT></P>
<P><FONT size=+0>在我们当前的方法中，一个给定编码中的所有字符会被分到两个类别中，"经常使用的"和"非经常使用的"。如果一个字符是出现在出现频率分布表中的前512个字符中，它会被分类到"经常使用"。之所以选择512，是由于它在所有4种语言的输入文本中都覆盖了很大一部分的百分比，同时仅占据一小部分的代码点。在输入文本中，我们以批处理的方式统计每个类别中字符的数量，然后计算一个我们称之为分布率(Distribuion Ratio)的浮点值。</FONT></P>
<P><FONT size=+0>分布率的定义如下</FONT></P>
<P><FONT size=+0>分布率 = 出现在512个最常用的的字符中的字符数量 / 出现在剩下的字符中的字符数量</FONT></P>
<P><FONT size=+0>每一种检测过的多字节编码方法都显示了独特的分布率。从分布率起，我们就可以对原始输入的文本对一个给定的编码方法来计算可信度。下面对每一种编码方法的讨论将会对这个问题说得更清楚一些。</FONT></P>
<P><STRONG><FONT size=+0>4.6分布率和可信度(Confidence Level)：</FONT></STRONG></P>
<P><FONT size=+0>让我们分别通过4种语言的数据来查看分布率的不同。注意，术语分布率代表两个意思。"理想"的分布率是对语言/字符集的定义而不是对编码的定义。如果某种语言/字符集表现为多种编码方式，那么，对每一种编码，我们通过将输入数据分类为"经常使用的"或"非经常使用的"来计算"实际上的"分布率。然后将这个值和理想的语言/字符集分布率进行比较。基于实际上获得的分布率，我们可以计算输入数据对每一种字符集的可信度，描述如下。</FONT></P>
<P><STRONG><FONT size=+0>4.6.1.简体中文(GB2312)</FONT></STRONG></P>
<P><FONT size=+0>GB2312包含两级中文字符。1级包含3755个字符，2级包含3008个字符。1级字符比2级字符常用，同时，不难得出512个最常用字符都包含在GB2312中的1级字符中。由于1级字符使用发音来排序，因此，512个最常用字符几乎完全分散在3755个代码点中。尽管这些字符占据1级字符所有代码点中的13.64%，但是在典型的中文文本中，它却有79.135%的出现机会。在理想的状况下，一段包含足够多字符的中文文本会返回给我们如下的结果：</FONT></P>
<P><FONT size=+0>分布率 = 0.79135/(1-0.79135) = 3.79</FONT></P>
<P><FONT size=+0>并且，对使用同样编码方案随机生成的文本来说，不考虑2级字符的话，比率大致为512/(3755-512) = 0.157。</FONT></P>
<P><FONT size=+0>如果我们将2级字符考虑进去的话，我们假定1级字符中每个字符出现的概率为p1，2级的为p2，计算公式将是：</FONT></P>
<P><FONT size=+0>512*p1/(3755*p1 + 3008*p2 - 512*p1) = 512/(3755 + 3008*p2/p1-512)</FONT></P>
<P><FONT size=+0>很明显，这个值将更小。在后面的分析中，我们仅使用最坏的情况作为比较。</FONT></P>
<P><STRONG><FONT size=+0>4.6.2.Big 5：</FONT></STRONG></P>
<P><FONT size=+0>Big5和EUC-TW(如，CNS字符集)编码具有类似的情况。Big5同样将中文字符编码成2级。最常用的512个字符均匀的分布在5401个1级字符中。从Big5编码文本中得到的理想分布率是</FONT></P>
<P><FONT size=+0>分布率 = 0.74851/(1-0.74851) = 2.98</FONT></P>
<P><FONT size=+0>并且，对随即生成的文本，分布率为</FONT></P>
<P><FONT size=+0>512/(5401-512) = 0.105</FONT></P>
<P><FONT size=+0>由于Big5的1级字符基本上等同于CNS字符集的1级字符，所以对EUC-TW来说，可以适用同样的分析。</FONT></P>
<P><STRONG><FONT size=+0>4.6.3.日语Shift_JIS和EUC-JP：</FONT></STRONG></P>
<P><FONT size=+0>对日语来说，平假名和片假名比日文汉字常用。由于Shift-JIS和EUC-JP将平假名和片假名编码在不同的编码区域，我们仍然可以使用这种方法将这两种编码区分开。<BR>那些在512个最常用的的字符中出现的的日文汉字字符仍然分布在2965个1级JIS日文汉字集中。同样的分析得出如下的分布率：</FONT></P>
<P><FONT size=+0>分布率 = 0.92635/(1-0.92635) = 12.58</FONT></P>
<P><FONT size=+0>对随即生成的日文文本数据，分布率最少为</FONT></P>
<P><FONT size=+0>512/(2965+63+83+86-512) = 0.191</FONT></P>
<P><FONT size=+0>上面的计算中包含 Hankaku 片假名(63个)，平假名(83个)，和片假名(86个)。</FONT></P>
<P><STRONG><FONT size=+0>4.6.4.韩语 EUC-KR：</FONT></STRONG></P>
<P><FONT size=+0>在EUC-KR编码中，实际使用在典型韩语文本中的中文字符可以忽略不计。使用这种编码的2350个韩语字符按照发音排列。在我们分析了很大数量的韩语文本数据后得出的频率表中，最常用的字符均匀的分布在2350个代码点中。用同样的分析，在理想的情况下，我们得到</FONT></P>
<P><FONT size=+0>分布率 = 0.98653/(1-0.98653) = 73.24</FONT></P>
<P><FONT size=+0>对随机生成的韩语文本，分布率为</FONT></P>
<P><FONT size=+0>512/(2350-512) = 0.279</FONT></P>
<P><STRONG><FONT size=+0>4.6.5.计算可信度</FONT></STRONG></P>
<P><FONT size=+0>从前面对每一种语言的讨论，我们可以以如下的形式定义出每一种数据集的可信度</FONT></P>
<P><FONT size=+0>Confidence Detecting(InputText)<BR>{<BR>&nbsp; for each multi-byte character in InputText <BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TotalCharacterCount++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if the character is among 512 most frequent ones<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FrequentCharacterCount++;<BR>&nbsp; }</FONT></P>
<P><FONT size=+0>&nbsp;&nbsp; Ratio = FrequentCharacterCount <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; / (TotalCharacterCount-FreqentCharacterCount);<BR>&nbsp;&nbsp; Confidence = Ratio / CHARSET_RATIO;<BR>&nbsp;&nbsp; Return Confidence;<BR>}</FONT></P>
<P><FONT size=+0>对每一种数据集的可信度定义为输入数据的分布率除以从上面分析得出的理想分布率。</FONT></P>
<P><STRONG><FONT size=+0>4.7.双字符序列分布方法</FONT></STRONG></P>
<P><FONT size=+0>对仅使用很少一部分字符的语言来说，我们需要比统计单字符出现率更进一步。字符组合揭示了更多的语言-字符特性。我们定义双字符序列为在输入文本中接连出现的2个字符，在这种情况中，顺序是非常重要的。由于在一种语言中，并不是所有字符都具有相同的出现率，双字符序列分布非常倾向于与语言/编码相关。这种特性可以用在语言检测上。在检测字符编码的时候，这会导致更好的可信度，在检测单字节编码上很有用处。</FONT></P>
<P><FONT size=+0>用俄语举例来说。我们下载了20MB的俄语纯文本，并且编写了一个程序来分析文本。这个程序发现了总共为21199528个双字符序列。在我们发现的序列中，有一些是和我们的考察无关的，比如空格-空格组合。这些序列被认为是噪音序列，并且，它们的出现没有被包含在分析中。在我们用来检测俄语的数据中，去处这些噪音数据，剩下20134122个双字符序列。总共占据我们从数据中所发现序列的95%。用来建立我们语言模式的序列可以被分为4096个不同的序列，并且，其中的1961个序列在我们的20134122个样本中出现次数少于3次。我们称这些序列为这种语言的负序列集。</FONT></P>
<P><STRONG><FONT size=+0>4.7.1.可信度检测算法</FONT></STRONG></P>
<P><FONT size=+0>对单字节语言，我定义如下的可信度：</FONT></P>
<P><FONT size=+0>Confidence Detecting(InputText)<BR>{<BR>&nbsp; for each character in InputText <BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If character is not a symbol or punctuation character<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TotalCharacters++;<BR>&nbsp;&nbsp;&nbsp; Find its frequency order in frequency table;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If (Frequency order &lt; SampleSize)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FrequentCharCount++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If we do not have lastChar<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lastChar = thisChar;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; continue;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if both lastChar and thisChar are within our sample range<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TotalSequence++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Sequence(lastChar, thisChar) belongs to NegativeSequenceSet<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NetgativeSequenceCount++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; Confidence = (TotalSequence - NegativeSequenceCount)/TotalSequence<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * FrequentCharCount / TotalCharacters;<BR>&nbsp;&nbsp; return Confidence;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>}&nbsp; </FONT></P>
<P><FONT size=+0>在这个算法中，需要对如下事情解释一下。</FONT></P>
<P><FONT size=+0>首先，序列分析没有对所有的字符都进行。我们当然可以通过建立一个256 x 256的矩阵来包含所有的那些字符序列，但是，其中的许多对语言/编码分析来说是无关的。由于绝大多数的单字节语言仅使用数量不多于64个的字母，而最常使用的64个字符几乎包含了所有语言中都有的字符。因此，矩阵可以缩减成为更小的64 x 64。所以我们使用64作为我们工作中的采样大小。我们选择用来建立我们模式<BR>的64个字符，是基于频率统计并作了相应调整后的。一些字符，比如0x0d和0x0a，在我们的观点中，和空格(0x20)很相似，所以，从我们的样本中移除了。</FONT></P>
<P><FONT size=+0>其次，对所有被64 x 64矩阵模式包含的序列，许多序列同样对用来检测语言/编码来说是无关的。几乎所有的单字节语言编码都包含ASCII子集，在其它的语言数据中，英语单词也会比较常见，尤其在网页中。空格-空格序列对任何的语言编码来说，明显是无关的。所有这些，在我们的检测中都被认为是噪音数据，并且通过过滤被移除了。</FONT></P>
<P><FONT size=+0>最后，在计算可信度上，我们同样需要统计出现在和不出现在我们采样范围内的字符数。如果一个小采样数据中的大部分字符都出现在我们的采样范围内的话，由于在这种情况下，负序列很少出现，因此序列分布本身将会返回一个较高的值。通过过滤，如果文本使用的是希望的编码的话，大部分提供给检测器的字符将会落在采样范围内。因此，通过统计负序列获得的可信度需要用这个数值调整一下。</FONT></P>
<P><FONT size=+0>对前面叙述的总结如下：</FONT></P>
<UL>
<LI><FONT size=+0>字符集验证的时候，只用到了所有字符中的一少部分子集。这保证了我们的模式不会过大。我们同样也通过减少噪音序列来保证我们的检测准确率更高。 </FONT>
<LI><FONT size=+0>每种语言模式使用脚本/工具生成的 </FONT>
<LI><FONT size=+0>在处理Latin字母表字符时： </FONT>
<UL>
<LI><FONT size=+0>如果语言中没有使用Latin字母的话，字母-字母序列被认为是噪音序列而从检测中被移除了。(比如，网页中，出现在其他语言中的英语单词) </FONT>
<LI><FONT size=+0>如果语言中使用Latin字母的话，这些序列被保留下来用以分析。</FONT></LI></UL>
<LI><FONT size=+0>落入采样范围的字符和没有落入采样范围的字符都被计数，这样，它们就可以用来计算可信度了。</FONT></LI></UL>
<P><STRONG><FONT size=+0>5.三种方法比较：</FONT></STRONG></P>
<P><STRONG><FONT size=+0>5.1.编码模式：</FONT></STRONG></P>
<P><FONT size=+0>对许多单字节编码来说，所有使用到的代码点都是均匀分布的。甚至对那些包含一些无用代码点的编码方式来说，这些无用的代码点在其它的编码方式中很少被使用，因此，不适合用于编码检测。</FONT></P>
<P><FONT size=+0>对其它多字节编码方式，本方法能得到一个很好的结果，并且很有效。事实上，由于一些编码方法，比如EUC-CN和EUC-KR几乎有完全类似的代码点，使用本方法很难区分将它们区分出来。考虑到浏览器通常不会包含大量文本的事实，我们必须使用其它的方法来检测编码。</FONT></P>
<P><FONT size=+0>对7bit的编码方式，如ISO-2022-xx和HZ来说，由于它们使用了容易识别的转义序列或变换序列，本方法可以得出一个满意的结果。对编码模式方法概括如下，</FONT></P>
<UL>
<LI><FONT size=+0>很适合处理7bit的编码方式，如ISO-2022-xx和HZ。 </FONT>
<LI><FONT size=+0>适合处理某些多字节编码，如Shift_JIS和EUC-JP，但不适合处理其它的编码，如EUC-CN和EUC-KR。 </FONT>
<LI><FONT size=+0>对单字节编码不是很有用。 </FONT>
<LI><FONT size=+0>能应用于任何类型的文本。<BR>快速而有效。</FONT></LI></UL>
<P><STRONG><FONT size=+0>5.2.字符分布：</FONT></STRONG></P>
<P><FONT size=+0>对多字节编码，尤其是那些编码模式方法不能有效处理的多字节编码来说，字符分布方法提供了很大的帮助，同时避免了对复杂上下文进行深入分析的麻烦。对单字节编码，由于输入的数据量通常很少，而且，由于有太多可能的编码方式，除非在特定的情况下，本模式不大可能取得理想的结果。由于双字符序列分布方法对这种情况能获得很好的检测结果，因此，我们没有在单字节编码检测中过多考虑使用本方法。对字符分布方法总结如下</FONT></P>
<UL>
<LI><FONT size=+0>很适合处理多字节编码方式。 </FONT>
<LI><FONT size=+0>只适用于特定文本。 </FONT>
<LI><FONT size=+0>快速而有效。</FONT></LI></UL>
<P><STRONG><FONT size=+0>5.3.双字符序列分布：</FONT></STRONG></P>
<P><FONT size=+0>在双字符序列分布中，我们可以使用更多的数据信息来检测语言/编码。甚至在只有很少数据样本的情况下，也能得到好的结果。但是由于使用序列代替了单词(通过空格分隔)，在处理多字节语言的时候，矩阵将会变得很大。因此，本方法：</FONT></P>
<UL>
<LI><FONT size=+0>很适合处理单字节编码。 </FONT>
<LI><FONT size=+0>对多字节编码方式来说，不是太适合。 </FONT>
<LI><FONT size=+0>在样本大小很小的情况下，也能获得好的结果。 </FONT>
<LI><FONT size=+0>只适用于特定文本。</FONT></LI></UL>
<P><STRONG><FONT size=+0>6.复合方法：</FONT></STRONG></P>
<P><STRONG><FONT size=+0>6.1.组合三种方法：</FONT></STRONG></P>
<P><FONT size=+0>在我们的字符集自动检测器所处理的语言/编码中，既有单字节编码，又有多字节编码。基于上面三种方法的定义，单独使用其中的任一种都无法产生满意的结果。因此我们建议使用复合的方法来处理所有这些编码。</FONT></P>
<P><FONT size=+0>双字符序列分布方法可用来检测所有的单字节编码。<BR>编码模式方法可以用在UTF-8，ISO-2022-xx和HZ检测上。在UTF-8检测中，对现有的状态机作了一点修改。UTF-8检测器的成功检测是在对多个多字节序列验证之后作出的。(详见 Martin Duerst's(1977))。编码模式方法和字符分布方法一起作用在了对主要东亚字符编码进行检测上，例如GB2312，Big5，EUC-TW，EUC-KR，Shift_JIS和EUC-JP。</FONT></P>
<P><FONT size=+0>对日语编码，如Shift_JIS和EUC-JP，双字符序列分布方法同样也能用于检测，这是由于它们包含许多具有明显特征的平假名字符，这些平假名字符和单字节语言中的字母很相似。双字符序列分布方法在很少文本的情况下也能得到精确的结果。</FONT></P>
<P><FONT size=+0>我们试验了两种方法，一种带有双字符分布方法，另一种不使用。它们都取得了满意的结果。有一些网站包含许多汉字和片假名字符，但是仅有一些平假名字符。为了尽可能获得最好的结果，我们在日语编码检测上既使用了字符分布方法，又使用了双字符分布方法。</FONT></P>
<P><FONT size=+0>这里有一个这三种检测方法结合在一起使用的例子。最上层的控制模块(对自动检测来说)算法如下：</FONT></P>
<P><FONT size=+0>Charset AutoDetection (InputText)<BR>{<BR>&nbsp;&nbsp; if (all characters in InputText are ASCII)<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if InputText contains ESC or "~{"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call ISO-2022 and HZ detector with InputText;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if one of them succeed, return that charset, otherwise return ASCII;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ASCII;<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; else if (InputText start with BOM)<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return UCS2;<BR>&nbsp; }<BR>&nbsp; else<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Call all multi-byte detectors and single-byte detectors;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Return the one with best confidence;<BR>&nbsp; }<BR>}</FONT></P>
<P><FONT size=+0>对以上代码片断序列的概括如下，</FONT></P>
<P><FONT size=+0>很大一部分网站仍使用ASCII编码。上层的控制算法从ASCII验证开始。如果所有字符都是ASCII的，除了ISO-2022-xx和HZ编码外，其它检测器就无需使用了。<BR>ISO-2022-xx和HZ检测器在遇到ESC或"~{"时会被载入，并且，在遇到8bit字节的时候，它们会被立即抛弃。<BR>在验证UCS2编码的时候，会搜索BOM是否出现。我们发现有些网站在http流中发送0x00，但是，使用这个字节来验证UCS2编码被证明是不可信的。<BR>如果任一处于激活状态的检测器接收到足够的数据并且达到了很高的可信度，整个自动检测过程将被终止，同时字符编码会作为结果返回。我们称之为快捷模式。</FONT></P>
<P><STRONG><FONT size=+0>6.2.测试结果：</FONT></STRONG></P>
<P><FONT size=+0>作为本文中极力推荐方法的测试，我们将我们的检测器应用在了100个流行的，但是没有基于文档或服务器发送HTTP字符集信息的国际网站。对包含在我们检测器中的全部编码方式来说，我们可以或得100%的准确率。</FONT></P>
<P><FONT size=+0>例如，当我们访问一个没有提供字符集信息的网站(例如，在</FONT><A href="http://www.yahoo.co.jp/" rel=nofollow><FONT size=+0>http://www.yahoo.co.jp</FONT></A><FONT size=+0>上的网站的服务器没有发送字符信息前)，我们的的字符检测器生成如下的输出：</FONT></P>
<P><FONT size=+0>[UTF8] is inactive<BR>[SJIS] is inactive<BR>[EUCJP] detector has confidence 0.950000<BR>[GB2312] detector has confidence 0.150852<BR>[EUCKR] is inactive<BR>[Big5] detector has confidence 0.129412<BR>[EUCTW] is inactive<BR>[Windows-1251 ] detector has confidence 0.010000 <BR>[KOI8-R] detector has confidence 0.010000 <BR>[ISO-8859-5] detector has confidence 0.010000 <BR>[x-mac-cyrillic] detector has confidence 0.010000 <BR>[IBM866] detector has confidence 0.010000 <BR>[IBM855] detector has confidence 0.010000 </FONT></P>
<P><FONT size=+0>因此，EUC-JP编码对这个站点来说是最可能的编码方式。</FONT></P>
<P><STRONG><FONT size=+0>7.结论：</FONT></STRONG></P>
<P><FONT size=+0>在我们的环境中，利用编码模式，字符分布和双字符序列分布的复合方法来检测语言/编码被证明是非常有效的。我们覆盖了Unicode编码，多字节和单字节编码方式。在我们当前的Internet数字文本中，这些编码方式是很有代表性的。我们有理由相信，通过扩展，这种方法可以覆盖没有包括在这篇论文中的，余下的编码方式。</FONT></P>
<P><FONT size=+0>尽管在当前，在我们的检测中，只有编码信息才是我们所需要的，在大多数的情况下，语言信息同样也能被识别出。事实上，字符分布和双字符分布方法都依赖于不同语言字符集的分布模式。只有在UTF16和UTF8的情况下，编码方式能被识别出，而语言信息仍是未知的。即使是在这种情况下，我们的工作也可通过将来的被扩展以覆盖语言信息的检测。</FONT></P>
<P><FONT size=+0>这里列出的三种检测方法在Netscape 6.1 PR1中已被实现了，并且作为后继版本中的"Detect All"选项。我们希望我们在自动检测上的工作可以使用户从麻烦的对字符编码菜单操作中解脱出来。字符编码菜单(或者其他形式的编码菜单)与其它的Internet客户端的界面元素不同，它们对一般的用户暴露了部分国际化的信息。它的存在折射出了当前的网页加入语言/编码方式后是多么的凌乱。</FONT></P>
<P><FONT size=+0>我们希望通过提供缺省的好的编码和通用自动检测能帮助用户在处理网络事务中可以避免大部分的问题。Web标准正在向使用Unicode作为缺省编码转移，特别的，是在向UTF-8转移。我们期望其在Web中逐渐地被使用。由于使用了自动检测，这种转移可以悄然进行，越来越多的用户在浏览，或是在阅读/发送消息的时候将从面对编码事宜中解放出来。这也是为什么我们提倡互联网客户端要使用好的自动检测方法和好的缺省的编码设置。</FONT></P>
<P><STRONG><FONT size=+0>8.将来的工作：</FONT></STRONG></P>
<P><FONT size=+0>我们的自动检是设计用来识别语言的。编码判断是这个识别的副产品。在当前工作中，在单字节实现中，我们用俄语举例。由于它识别语言和这个语言下的编码方式，因此语言数据越多，编码检测的质量越高。</FONT></P>
<P><FONT size=+0>要想加入其它的单字节语言/编码，我们需要每一种语言的，大量的文本采样数据，同时需要对语言的认知/分析有一定的深度。我们当前使用脚本来对一种语言的所有编码生成一种语言模式。</FONT></P>
<P><FONT size=+0>当前，我们的工作还没有在Mozilla源代码中体现出来，但我们希望在不远的将来我们的工作会变得公开。我们希望有人在这个领域内做出贡献。因为我们还没有对许多单字节编码做过测试，我们希望在处理其它语言/编码的时候，我们在这里提出的模式可以得到更好的调整，修改甚至是重新设计。</FONT></P>
<P><FONT size=+0><STRONG>9.引用</STRONG><BR>Duerst, Martin. 1977. The Properties and Promizes of UTF-8.&nbsp; 11th Unicode Conference. <BR>&nbsp;</FONT><A href="http://www.ifi.unizh.ch/groups/mml/people/mduerst/papers/IUC11-UTF-8.pdf" rel=nofollow><FONT size=+0>http://www.ifi.unizh.ch/groups/mml/people/mduerst/papers/IUC11-UTF-8.pdf</FONT></A><FONT size=+0> <BR>Mandarin Promotion Council, Taiwan. Annual survey results of Traditional Chinese character usage.<BR>&nbsp;</FONT><A href="http://www.edu.tw/mandr/result/87news/index1.htm" rel=nofollow><FONT size=+0>http://www.edu.tw/mandr/result/87news/index1.htm</FONT></A><BR><FONT size=+0>Mozilla Internationalization Projects.&nbsp; </FONT><A href="http://www.mozilla.org/projects/intl" rel=nofollow><FONT size=+0>http://www.mozilla.org/projects/intl</FONT></A><BR><FONT size=+0>Mozilla.org.&nbsp; </FONT><A href="http://www.mozilla.org/" rel=nofollow><FONT size=+0>http://www.mozilla.org/</FONT></A><BR><FONT size=+0>Mozilla source viewing.&nbsp; </FONT><A href="http://lxr.mozilla.org/" rel=nofollow><FONT size=+0>http://lxr.mozilla.org/</FONT></A></P>
<P><FONT size=+0>版权所有 1998-2003 The Mozilla Organization <BR>最后修改 November 26, 2002 </FONT></P></FONT></FONT></FONT></FONT></FONT></FONT></FONT></FONT></FONT></FONT></FONT></FONT></FONT></FONT></FONT></FONT></FONT></FONT><img src ="http://www.cnblogs.com/timothy/aggbug/272657.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47998/" target="_blank">传诺基亚正在开发Android手机</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>开源测试工具——功能测试工具 </title><link>http://www.cnblogs.com/timothy/archive/2005/10/19/258007.html</link><dc:creator>云在青天水在瓶</dc:creator><author>云在青天水在瓶</author><pubDate>Wed, 19 Oct 2005 09:11:00 GMT</pubDate><guid>http://www.cnblogs.com/timothy/archive/2005/10/19/258007.html</guid><wfw:comment>http://www.cnblogs.com/timothy/comments/258007.html</wfw:comment><comments>http://www.cnblogs.com/timothy/archive/2005/10/19/258007.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/timothy/comments/commentRss/258007.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/timothy/services/trackbacks/258007.html</trackback:ping><description><![CDATA[<TABLE class="fixedTable blogpost" cellSpacing=0 width="100%" border=0>
<TBODY>
<TR>
<TD class=ellipse><SPAN class=bvTitle id=subjcns!1puPVhzHzHEVBNO0pyNCdsmQ!158><STRONG>开源测试工具——功能测试工具</STRONG></SPAN></TD></TR>
<TR>
<TD class=bvh8><STRONG></STRONG></TD></TR>
<TR>
<TD id=msgcns!1puPVhzHzHEVBNO0pyNCdsmQ!158>
<DIV>
<TABLE height=1290 width="100%" border=0>
<TBODY>
<TR>
<TD vAlign=top align=left height=89><STRONG>Linux Test Project</STRONG> <BR><A href="http://ltp.sourceforge.net/" target=_blank><U><FONT color=#0000ff>http://ltp.sourceforge.net/</FONT></U></A> <BR>工具描述: <BR>Linux Test Project是一个测试Linux内核和内核相关特性的工具集合。该工具的目的是通过把测试自动化引入到Linux内核测试，提高Linux的内核质量。 <BR>使用环境: <BR>Linux</TD></TR>
<TR>
<TD vAlign=top align=left height=117>
<P><STRONG>MaxQ</STRONG><BR><A href="http://maxq.tigris.org/" target=_blank><U><FONT color=#0000ff>http://maxq.tigris.org/</FONT></U></A><BR>工具描述: <BR>MaxQ是一个免费的功能测试工具。它包括一个HTTP代理工具，可以录制测试脚本，并提供回放测试过程的命令行工具。测试结果的统计图表类似于商用测试工具，比如Astra QuickTest和Empirix e-Test，这些商用工具都很昂贵。MaxQ希望能够提供一些关键的功能，比如HTTP测试录制回放功能，并支持脚本。<BR>使用环境: <BR>Java 1.2以上版本</P></TD></TR>
<TR>
<TD vAlign=top align=left height=90><STRONG>WebInject</STRONG><BR><A href="http://www.webinject.org/" target=_blank><U><FONT color=#0000ff>http://www.webinject.org/</FONT></U></A><BR>工具描述: <BR>WebInject是一个针对Web应用程序和服务的免费测试工具。 它可以通过HTTP接口测试任意一个单独的系统组件。可以作为测试框架管理功能自动化测试和回归自动化测试的测试套。<BR>使用环境: <BR>Windows, OS Independent, Linux</TD></TR>
<TR>
<TD vAlign=top align=left height=18>
<H3>开源测试工具——性能测试工具</H3></TD></TR>
<TR>
<TD vAlign=top align=left height=103>
<P><STRONG>Apache JMeter</STRONG> <BR><A href="http://jakarta.apache.org/jmeter/"><U><FONT color=#0000ff>http://jakarta.apache.org/jmeter/ </FONT></U></A><BR>工具描述: <BR>Apache JMeter是100％的Java桌面应用程序，它被设计用来加载被测试软件功能特性、度量被测试软件的性能。设计Jmeter的初衷是测试Web应用，后来又扩充了其它的功能。Jmeter可以完成针对静态资源和动态资源（讹误女监, Servlets, Perl脚本, Java对象, 数据查询s, FTP服务等）的性能测试。。 Jmeter可以模拟大量的服务器负载、网络负载、软件对象负载，通过不同的加载类型全面测试软件的性能。Jmeter提供图形化的性能分析。 <BR>使用环境: <BR>Solaris, Linux, Windows (98, NT, 2000). JDK1.4以上. </P></TD></TR>
<TR>
<TD vAlign=top align=left height=89>
<P><STRONG>DBMonster</STRONG> <BR><A href="http://dbmonster.kernelpanic.pl/"><U><FONT color=#0000ff>http://dbmonster.kernelpanic.pl/ </FONT></U></A><BR>工具描述: <BR>DBMonster是一个生成随机数据，用来测试SQL数据库的压力测试工具。 <BR>使用环境: <BR>OS Independent </P></TD></TR>
<TR>
<TD vAlign=top align=left height=103>
<P><STRONG>OpenSTA (Open System Testing Architecture) </STRONG><BR><A href="http://portal.opensta.org/index.php"><U><FONT color=#0000ff>http://portal.opensta.org/index.php </FONT></U></A><BR>工具描述: <BR>基于CORBA的分布式软件测试构架。使用OpenSTA，测试人员可以模拟大量的虚拟用户。OpenSTA的结果分析包括虚拟用户响应时间、web服务器的资源使用情况、数据库服务器的使用情况，可以精确的度量负载测试的结果。 <BR>使用环境: <BR>OS Independent </P></TD></TR>
<TR>
<TD vAlign=top align=left height=89>
<P><STRONG>TPTEST </STRONG><BR><A href="http://tptest.sourceforge.net/about.php"><U><FONT color=#0000ff>http://tptest.sourceforge.net/about.php </FONT></U></A><BR>工具描述: <BR>TPTest的提供测试Internet连接速度的简单方法。 <BR>使用环境: <BR>MacOS/Carbon、 Win32 </P></TD></TR>
<TR>
<TD vAlign=top align=left height=77><STRONG>Web Application Load Simulator</STRONG> <BR><A href="http://www.openware.org/loadsim/index.html"><U><FONT color=#0000ff>http://www.openware.org/loadsim/index.html </FONT></U></A><BR>工具描述: <BR>LoadSim是一个网络应用程序的负载模拟器。 <BR>使用环境: <BR>JDK 1.3以上 </TD></TR>
<TR>
<TD vAlign=top align=left height=18>
<H3><SPAN>开源测试工具——缺陷管理工具</SPAN></H3></TD></TR>
<TR>
<TD vAlign=top align=left height=103>
<P><STRONG>Mantis </STRONG><BR><A href="http://mantisbt.sourceforge.net/"><U><FONT color=#0000ff>http://mantisbt.sourceforge.net/ </FONT></U></A><BR>工具描述: <BR>Mantis是一款基于WEB的软件缺陷管理工具，配置和使用都很简单，适合中小型软件开发团队，关于Mantis的介绍文章参见51testing软件测试网顾问蔡琰的文章 <A href="http://spaces.msn.com/mmm2005-09-20_19.45/20040806_1.htm"><U><FONT color=#0000ff>《使用开源软件 Mantis 实施缺陷跟踪的成功实践》 </FONT></U></A><BR>使用环境: <BR>MySQL, PHP </P></TD></TR>
<TR>
<TD vAlign=top align=left height=78><STRONG>Bugzilla </STRONG><BR><A href="http://www.mozilla.org/projects/bugzilla/"><U><FONT color=#0000ff>http://www.mozilla.org/projects/bugzilla/ </FONT></U></A><BR>工具描述: <BR>一款不错的软件缺陷管理工具。 <BR>使用环境: <BR>TBC </TD></TR>
<TR>
<TD vAlign=top align=left height=19>
<H3><SPAN>开源测试工具——测试管理工具</SPAN></H3></TD></TR>
<TR>
<TD vAlign=top align=left height=86><STRONG>TestLink </STRONG><BR><A href="http://testlink.sourceforge.net/docs/testLink.php"><U><FONT color=#0000ff>http://testlink.sourceforge.net/docs/testLink.php </FONT></U></A><BR>工具描述: <BR>基于WEB的测试管理和执行系统。测试小组在系统中可以创建、管理、执行、跟踪测试用例，并且提供在测试计划中安排测试用例的方法。 <BR>使用环境: <BR>Apache, MySQL, PHP </TD></TR>
<TR>
<TD vAlign=top align=left height=86>
<P><STRONG>Bugzilla Test Runner </STRONG><BR><A href="http://sourceforge.net/projects/testrunner/"><U><FONT color=#0000ff>http://sourceforge.net/projects/testrunner/ </FONT></U></A><BR>工具描述: <BR>Bugzilla Test Runner基于Bugzilla缺陷管理系统的测试用例管理系统。 <BR>使用环境: <BR>Bugzilla 2.16.3 or above </P></TD></TR></TBODY></TABLE></DIV></TD></TR></TBODY></TABLE><img src ="http://www.cnblogs.com/timothy/aggbug/258007.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47996/" target="_blank">7月编程语言排行榜</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>转:谈谈Unicode编码，简要解释UCS、UTF、BMP、BOM等名词</title><link>http://www.cnblogs.com/timothy/archive/2005/09/27/245391.html</link><dc:creator>云在青天水在瓶</dc:creator><author>云在青天水在瓶</author><pubDate>Tue, 27 Sep 2005 12:22:00 GMT</pubDate><guid>http://www.cnblogs.com/timothy/archive/2005/09/27/245391.html</guid><wfw:comment>http://www.cnblogs.com/timothy/comments/245391.html</wfw:comment><comments>http://www.cnblogs.com/timothy/archive/2005/09/27/245391.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/timothy/comments/commentRss/245391.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/timothy/services/trackbacks/245391.html</trackback:ping><description><![CDATA[<H2 class=post-title>&nbsp;</H2>
<DIV class=post-body>这是一篇程序员写给程序员的趣味读物。所谓趣味是指可以比较轻松地了解一些原来不清楚的概念，增进知识，类似于打RPG游戏的升级。整理这篇文章的动机是两个问题：<BR><BR>问题一： <BR>使用Windows记事本的&#8220;另存为&#8221;，可以在GBK、Unicode、Unicode big endian和UTF-8这几种编码方式间相互转换。同样是txt文件，Windows是怎样识别编码方式的呢？<BR><BR>我很早前就发现Unicode、Unicode big endian和UTF-8编码的txt文件的开头会多出几个字节，分别是FF、FE（Unicode）,FE、FF（Unicode big endian）,EF、BB、BF（UTF-8）。但这些标记是基于什么标准呢？<BR><BR>问题二： <BR>最近在网上看到一个ConvertUTF.c，实现了UTF-32、UTF-16和UTF-8这三种编码方式的相互转换。对于Unicode(UCS2)、GBK、UTF-8这些编码方式，我原来就了解。但这个程序让我有些糊涂，想不起来UTF-16和UCS2有什么关系。 <BR>查了查相关资料，总算将这些问题弄清楚了，顺带也了解了一些Unicode的细节。写成一篇文章，送给有过类似疑问的朋友。本文在写作时尽量做到通俗易懂，但要求读者知道什么是字节，什么是十六进制。<BR><BR>0、big endian和little endian<BR>big endian和little endian是CPU处理多字节数的不同方式。例如&#8220;汉&#8221;字的Unicode编码是6C49。那么写到文件里时，究竟是将6C写在前面，还是将49写在前面？如果将6C写在前面，就是big endian。还是将49写在前面，就是little endian。<BR><BR>&#8220;endian&#8221;这个词出自《格列佛游记》。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开，由此曾发生过六次叛乱，其中一个皇帝送了命，另一个丢了王位。<BR><BR>我们一般将endian翻译成&#8220;字节序&#8221;，将big endian和little endian称作&#8220;大尾&#8221;和&#8220;小尾&#8221;。<BR><BR><B>1、字符编码、内码，顺带介绍汉字编码</B><BR>字符必须编码后才能被计算机处理。计算机使用的缺省编码方式就是计算机的内码。早期的计算机使用7位的ASCII编码，为了处理汉字，程序员设计了用于简体中文的GB2312和用于繁体中文的big5。<BR><BR>GB2312(1980年)一共收录了7445个字符，包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7，低字节从A1-FE，占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。<BR><BR>GB2312支持的汉字太少。1995年的汉字扩展规范GBK1.0收录了21886个符号，它分为汉字区和图形符号区。汉字区包括21003个字符。2000年的GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字，同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030，对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。<BR><BR>从ASCII、GB2312、GBK到GB18030，这些编码方法是向下兼容的，即同一个字符在这些方案中总是有相同的编码，后面的标准支持更多的字符。在这些编码中，英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼，GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。<BR><BR>有的中文Windows的缺省内码还是GBK，可以通过GB18030升级包升级到GB18030。不过GB18030相对GBK增加的字符，普通人是很难用到的，通常我们还是用GBK指代中文Windows内码。<BR><BR>这里还有一些细节：<BR><BR>GB2312的原文还是区位码，从区位码到内码，需要在高字节和低字节上分别加上A0。<BR><BR>在DBCS中，GB内码的存储格式始终是big endian，即高位在前。<BR><BR>GB2312的两个字节的最高位都是1。但符合这个条件的码位只有128*128=16384个。所以GBK和GB18030的低字节最高位都可能不是1。不过这不影响DBCS字符流的解析：在读取DBCS字符流时，只要遇到高位为1的字节，就可以将下两个字节作为一个双字节编码，而不用管低字节的高位是什么。<BR><BR><B>2、Unicode、UCS和UTF</B><BR>前面提到从ASCII、GB2312、GBK到GB18030的编码方法是向下兼容的。而Unicode只与ASCII兼容（更准确地说，是与ISO-8859-1兼容），与GB码不兼容。例如&#8220;汉&#8221;字的Unicode编码是6C49，而GB码是BABA。<BR><BR>Unicode也是一种字符编码方法，不过它是由国际组织设计，可以容纳全世界所有语言文字的编码方案。Unicode的学名是"Universal Multiple-Octet Coded Character Set"，简称为UCS。UCS可以看作是"Unicode Character Set"的缩写。<BR><BR>根据维基百科全书(http://zh.wikipedia.org/wiki/)的记载：历史上存在两个试图独立设计Unicode的组织，即国际标准化组织（ISO）和一个软件制造商的协会（unicode.org）。ISO开发了ISO 10646项目，Unicode协会开发了Unicode项目。<BR><BR>在1991年前后，双方都认识到世界不需要两个不兼容的字符集。于是它们开始合并双方的工作成果，并为创立一个单一编码表而协同工作。从Unicode2.0开始，Unicode项目采用了与ISO 10646-1相同的字库和字码。<BR><BR>目前两个项目仍都存在，并独立地公布各自的标准。Unicode协会现在的最新版本是2005年的Unicode 4.1.0。ISO的最新标准是10646-3:2003。<BR><BR>UCS规定了怎么用多个字节表示各种文字。怎样传输这些编码，是由UTF(UCS Transformation Format)规范规定的，常见的UTF规范包括UTF-8、UTF-7、UTF-16。<BR><BR>IETF的RFC2781和RFC3629以RFC的一贯风格，清晰、明快又不失严谨地描述了UTF-16和UTF-8的编码方法。我总是记不得IETF是Internet Engineering Task Force的缩写。但IETF负责维护的RFC是Internet上一切规范的基础。<BR><BR><B>3、UCS-2、UCS-4、BMP</B><BR><BR>UCS有两种格式：UCS-2和UCS-4。顾名思义，UCS-2就是用两个字节编码，UCS-4就是用4个字节（实际上只用了31位，最高位必须为0）编码。下面让我们做一些简单的数学游戏：<BR><BR>UCS-2有2^16=65536个码位，UCS-4有2^31=2147483648个码位。<BR><BR>UCS-4根据最高位为0的最高字节分成2^7=128个group。每个group再根据次高字节分为256个plane。每个plane根据第3个字节分为256行 (rows)，每行包含256个cells。当然同一行的cells只是最后一个字节不同，其余都相同。<BR><BR>group 0的plane 0被称作Basic Multilingual Plane, 即BMP。或者说UCS-4中，高两个字节为0的码位被称作BMP。<BR><BR>将UCS-4的BMP去掉前面的两个零字节就得到了UCS-2。在UCS-2的两个字节前加上两个零字节，就得到了UCS-4的BMP。而目前的UCS-4规范中还没有任何字符被分配在BMP之外。<BR><BR><B>4、UTF编码</B><BR><BR>UTF-8就是以8位为单元对UCS进行编码。从UCS-2到UTF-8的编码方式如下：<BR><BR>
<TABLE width="75%" border=1>
<TBODY>
<TR>
<TD>UCS-2编码(16进制)</TD>
<TD>UTF-8 字节流(二进制)</TD></TR>
<TR>
<TD>0000 - 007F</TD>
<TD>0xxxxxxx</TD></TR>
<TR>
<TD>0080 - 07FF</TD>
<TD>110xxxxx 10xxxxxx</TD></TR>
<TR>
<TD>0800 - FFFF</TD>
<TD>1110xxxx 10xxxxxx 10xxxxxx</TD></TR></TBODY></TABLE><BR>例如&#8220;汉&#8221;字的Unicode编码是6C49。6C49在0800-FFFF之间，所以肯定要用3字节模板了：1110xxxx 10xxxxxx 10xxxxxx。将6C49写成二进制是：0110 110001 001001， 用这个比特流依次代替模板中的x，得到：11100110 10110001 10001001，即E6 B1 89。<BR><BR>读者可以用记事本测试一下我们的编码是否正确。<BR><BR>UTF-16以16位为单元对UCS进行编码。对于小于0x10000的UCS码，UTF-16编码就等于UCS码对应的16位无符号整数。对于不小于0x10000的UCS码，定义了一个算法。不过由于实际使用的UCS2，或者UCS4的BMP必然小于0x10000，所以就目前而言，可以认为UTF-16和UCS-2基本相同。但UCS-2只是一个编码方案，UTF-16却要用于实际的传输，所以就不得不考虑字节序的问题。<BR><BR><B>5、UTF的字节序和BOM</B><BR>UTF-8以字节为编码单元，没有字节序的问题。UTF-16以两个字节为编码单元，在解释一个UTF-16文本前，首先要弄清楚每个编码单元的字节序。例如收到一个&#8220;奎&#8221;的Unicode编码是594E，&#8220;乙&#8221;的Unicode编码是4E59。如果我们收到UTF-16字节流&#8220;594E&#8221;，那么这是&#8220;奎&#8221;还是&#8220;乙&#8221;？<BR><BR>Unicode规范中推荐的标记字节顺序的方法是BOM。BOM不是&#8220;Bill Of Material&#8221;的BOM表，而是Byte Order Mark。BOM是一个有点小聪明的想法：<BR><BR>在UCS编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符，它的编码是FEFF。而FFFE在UCS中是不存在的字符，所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前，先传输字符"ZERO WIDTH NO-BREAK SPACE"。<BR><BR>这样如果接收者收到FEFF，就表明这个字节流是Big-Endian的；如果收到FFFE，就表明这个字节流是Little-Endian的。因此字符"ZERO WIDTH NO-BREAK SPACE"又被称作BOM。<BR><BR>UTF-8不需要BOM来表明字节顺序，但可以用BOM来表明编码方式。字符"ZERO WIDTH NO-BREAK SPACE"的UTF-8编码是EF BB BF（读者可以用我们前面介绍的编码方法验证一下）。所以如果接收者收到以EF BB BF开头的字节流，就知道这是UTF-8编码了。<BR><BR>Windows就是使用BOM来标记文本文件的编码方式的。<BR><BR><B>6、进一步的参考资料</B><BR>本文主要参考的资料是 "Short overview of ISO-IEC 10646 and Unicode" (http://www.nada.kth.se/i18n/ucs/unicode-iso10646-oview.html)。</DIV><img src ="http://www.cnblogs.com/timothy/aggbug/245391.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47995/" target="_blank">Google Voice 上手</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>四种AD安装的情况以及配置方法(简易版) </title><link>http://www.cnblogs.com/timothy/archive/2005/09/20/240515.html</link><dc:creator>云在青天水在瓶</dc:creator><author>云在青天水在瓶</author><pubDate>Tue, 20 Sep 2005 08:22:00 GMT</pubDate><guid>http://www.cnblogs.com/timothy/archive/2005/09/20/240515.html</guid><wfw:comment>http://www.cnblogs.com/timothy/comments/240515.html</wfw:comment><comments>http://www.cnblogs.com/timothy/archive/2005/09/20/240515.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/timothy/comments/commentRss/240515.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/timothy/services/trackbacks/240515.html</trackback:ping><description><![CDATA[<DIV class=postTitle><A href="http://blog.csdn.net/longrujun/archive/2004/07/19/45261.aspx">四种AD安装的情况以及配置方法(简易版)</A>
<SCRIPT language=javascript>document.title="四种AD安装的情况以及配置方法(简易版) - "+document.title</SCRIPT>
 </DIV>
<DIV class=postText><SPAN lang=EN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">how&nbsp;two</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">：<SPAN lang=EN>&nbsp;</SPAN>四种<SPAN lang=EN>AD</SPAN>安装的情况以及配置方法<SPAN lang=EN>(</SPAN>简易版<SPAN lang=EN>)<BR><BR>----------------<BR></SPAN>看到论坛里面很多人问<SPAN lang=EN>AD</SPAN>使用中出现问题，比如找不到另一台域控制器，其实很多问题是安装<SPAN lang=EN>AD</SPAN>不当造成的，有些和<SPAN lang=EN>DNS</SPAN>也有关系。<SPAN lang=EN><BR>AD</SPAN>涉及的内容还是比较多的，所以今晚写一个简易的安装<SPAN lang=EN>AD</SPAN>的步骤出来。<SPAN lang=EN>AD</SPAN>有问题的时候可以<SPAN lang=EN>check</SPAN>一下，看安装是否正确。<SPAN lang=EN><BR></SPAN>我这里写的比较简单，主要是没有详细写关于<SPAN lang=EN>DNS&nbsp;delegate</SPAN>如何做，所有场景均使用一个<SPAN lang=EN>dns</SPAN>服务器，如果要设置更详细，可以参考<SPAN lang=EN>win2000&nbsp;dns&nbsp;white&nbsp;paper</SPAN>，微软网站有下载。<SPAN lang=EN><BR><BR></SPAN>另外个人建议，如果要管理好<SPAN lang=EN>AD</SPAN>，对<SPAN lang=EN>DNS</SPAN>还是要下一些功夫弄清楚。否则即使装了，管理起来出问题也很难排错。<SPAN lang=EN><BR>----------------<BR><BR>----------------<BR></SPAN>环境：<SPAN lang=EN><BR></SPAN>两台<SPAN lang=EN>win2k&nbsp;server,</SPAN>配置如下<SPAN lang=EN><BR><BR>1</SPAN>：<SPAN lang=EN>&nbsp;</SPAN>计算机名：<SPAN lang=EN>&nbsp;server1<BR>&nbsp;&nbsp;&nbsp;&nbsp;IP:&nbsp;192.168.0.1<BR><BR>2:&nbsp;&nbsp;</SPAN>计算机名：<SPAN lang=EN>&nbsp;server2<BR>&nbsp;&nbsp;&nbsp;&nbsp;IP:&nbsp;192.168.0.2<BR><BR></SPAN>－－－－－－－－<SPAN lang=EN><BR><BR><BR></SPAN>－－－－－－－－－－－－－－－－情况一：单域，单域控制器－－－－－－－－－－－－－－<SPAN lang=EN><BR></SPAN>目标：<SPAN lang=EN><BR></SPAN>将<SPAN lang=EN>server1</SPAN>做成域控制器，域名为<SPAN lang=EN>test.com</SPAN>，<SPAN lang=EN>server2</SPAN>作为<SPAN lang=EN>member&nbsp;server<BR><BR><BR>AD</SPAN>需要<SPAN lang=EN>DNS</SPAN>的支持，<SPAN lang=EN>DNS</SPAN>可以在安装<SPAN lang=EN>AD</SPAN>的前中后装，建议在<SPAN lang=EN>AD</SPAN>安装之前装，并手动配置<SPAN lang=EN><BR><BR>(1A)&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>安装<SPAN lang=EN>DNS(server1</SPAN>上<SPAN lang=EN>)<BR><BR>1:</SPAN>安装<SPAN lang=EN>DNS</SPAN>服务。（如果是给<SPAN lang=EN>forestroot</SPAN>做<SPAN lang=EN>DNS</SPAN>，建议先将机器上原来的<SPAN lang=EN>DNS</SPAN>卸干净，包括<SPAN lang=EN>system32</SPAN>下<SPAN lang=EN>DNS</SPAN>目录也删掉。再安装服务）<SPAN lang=EN><BR><BR>2</SPAN>：创建<SPAN lang=EN>forward&nbsp;lookup&nbsp;zone,</SPAN>为<SPAN lang=EN>test.com</SPAN>。<SPAN lang=EN>reverse&nbsp;lookup&nbsp;zone</SPAN>填网络号<SPAN lang=EN>192.168.0<BR><BR>3</SPAN>：设置两个<SPAN lang=EN>zone</SPAN>允许<SPAN lang=EN>dynamic&nbsp;update<BR><BR>4</SPAN>：在本地连接中将<SPAN lang=EN>DNS</SPAN>地址指向<SPAN lang=EN>192.168.0.1<BR><BR>5:</SPAN>设置<SPAN lang=EN>primary&nbsp;dns&nbsp;suffix</SPAN>为<SPAN lang=EN>test.com<BR><BR>6</SPAN>：按照提示，<SPAN lang=EN>restart</SPAN>，建议一定重起。<SPAN lang=EN><BR><BR>7:&nbsp;</SPAN>重起后发现<SPAN lang=EN>test.com</SPAN>中有<SPAN lang=EN>server1</SPAN>的<SPAN lang=EN>A</SPAN>记录，说明一切正常。反向<SPAN lang=EN>zone</SPAN>中有<SPAN lang=EN>ptr</SPAN>记录<SPAN lang=EN><BR><BR>(</SPAN>需要注意的是，域名第一片和计算机名不要一样，如果在计算机<SPAN lang=EN>abc</SPAN>上不要做<SPAN lang=EN>abc.com</SPAN>，否则默认情况下<SPAN lang=EN>domain</SPAN>的<SPAN lang=EN>netbios</SPAN>名和计算机的<SPAN lang=EN>netbios</SPAN>名会一样<SPAN lang=EN>)<BR><BR>(1B)<BR><BR></SPAN>按照正常情况<SPAN lang=EN>Dcpromo</SPAN>，选择安装成新域的域控制器，新树，新森林。<SPAN lang=EN><BR><BR></SPAN>安装过程中应不会提示任何诸如&#8220;<SPAN lang=EN>DNS</SPAN>找不到&#8221;的信息，这就正常了。<SPAN lang=EN><BR><BR></SPAN>装完<SPAN lang=EN>AD</SPAN>后看看<SPAN lang=EN>DNS</SPAN>的的<SPAN lang=EN>test.com</SPAN>内是否有放置<SPAN lang=EN>SRV</SPAN>记录的四个目录，目录名为<SPAN lang=EN>TCP,UDP,MSDCS,Sites</SPAN>。如果一个也没有，重新启动<SPAN lang=EN>Net&nbsp;logon</SPAN>服务，如果<SPAN lang=EN><BR><BR></SPAN>还是没有，那装得有问题。一般应该都是正常的。<SPAN lang=EN><BR><BR></SPAN>同时查看事件查看器中是否有任何关于<SPAN lang=EN>directory&nbsp;service</SPAN>的错误日志。<SPAN lang=EN><BR><BR>(1C)&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>将<SPAN lang=EN>server2</SPAN>设置成<SPAN lang=EN>member&nbsp;server<BR><BR></SPAN>在<SPAN lang=EN>server2</SPAN>上将<SPAN lang=EN>dns</SPAN>指向<SPAN lang=EN>server1</SPAN>，修改<SPAN lang=EN>primary&nbsp;dns&nbsp;suffix</SPAN>为<SPAN lang=EN>test.com</SPAN>，重起，然后将<SPAN lang=EN>server2</SPAN>加入<SPAN lang=EN>domian</SPAN>，在<SPAN lang=EN>server1</SPAN>上打开<SPAN lang=EN>ad&nbsp;user&nbsp;and&nbsp;<BR><BR>computer</SPAN>，其中<SPAN lang=EN>computer</SPAN>容器内可以看到<SPAN lang=EN>server2</SPAN>的计算机帐号。<SPAN lang=EN>DNS</SPAN>中也会有<SPAN lang=EN>server2</SPAN>的<SPAN lang=EN>A</SPAN>记录。查看事件查看器，确保无任何不良记录。<SPAN lang=EN><BR><BR><BR></SPAN>－－－－－－－－－－－－－－－－情况<SPAN lang=EN>2</SPAN>，单域，两个域控制器－－－－－－－－－<SPAN lang=EN><BR><BR></SPAN>目标：<SPAN lang=EN>server1</SPAN>作为第一台域控制器，<SPAN lang=EN>server2</SPAN>作为第二台域控制器，域名<SPAN lang=EN>test.com<BR><BR>server1</SPAN>的安装同<SPAN lang=EN>1a</SPAN>，<SPAN lang=EN>1b</SPAN>。<SPAN lang=EN><BR><BR></SPAN>对于<SPAN lang=EN>server2</SPAN>。<SPAN lang=EN><BR><BR></SPAN>（<SPAN lang=EN>2a</SPAN>）<SPAN lang=EN><BR>1</SPAN>：安装前，此机器属于<SPAN lang=EN>domain</SPAN>或者工作组没有关系。<SPAN lang=EN><BR><BR>2</SPAN>：将<SPAN lang=EN>dns</SPAN>指向<SPAN lang=EN>server1</SPAN>（<SPAN lang=EN>192.168.0.1</SPAN>）<SPAN lang=EN><BR><BR>3:</SPAN>修改<SPAN lang=EN>primary&nbsp;suffix</SPAN>为<SPAN lang=EN>test.com&nbsp;</SPAN>（<SPAN lang=EN>suffix</SPAN>是可以自动改，但是手动改总是放心些）<SPAN lang=EN><BR><BR>4</SPAN>：重起机器，建议一定重起。<SPAN lang=EN><BR><BR>5</SPAN>：检查<SPAN lang=EN>server1</SPAN>上的<SPAN lang=EN>dns</SPAN>，在<SPAN lang=EN>test.com</SPAN>这个<SPAN lang=EN>zone</SPAN>内会发现<SPAN lang=EN>server2</SPAN>的<SPAN lang=EN>a</SPAN>记录。如果没有，那配置有问题，可以用<SPAN lang=EN>ipconfig/registerdns</SPAN>手动注册，再看<SPAN lang=EN><BR><BR></SPAN>有没有，如果还是没有，那就有问题了（<SPAN lang=EN>dns</SPAN>没有按照<SPAN lang=EN>1a</SPAN>设置好）。<SPAN lang=EN><BR><BR></SPAN>（<SPAN lang=EN>2b</SPAN>）<SPAN lang=EN><BR><BR>1</SPAN>：<SPAN lang=EN>dcpromo</SPAN>，启动向导<SPAN lang=EN><BR>2</SPAN>：选择，安装成一个已经存在的域的另外一台域控制器<SPAN lang=EN><BR>3</SPAN>：按照提示，输入身份，这个身份是<SPAN lang=EN>enterprise&nbsp;admins</SPAN>的身份，也就是现在<SPAN lang=EN>test.com</SPAN>的<SPAN lang=EN>administrator</SPAN>以及其密码<SPAN lang=EN><BR>4</SPAN>：选择要加入的<SPAN lang=EN>domain</SPAN>，这里是<SPAN lang=EN>test.com<BR>5</SPAN>：完成其他选项<SPAN lang=EN><BR><BR></SPAN>（<SPAN lang=EN>3c</SPAN>）<SPAN lang=EN><BR>1</SPAN>：安装后可以在<SPAN lang=EN>ad&nbsp;user&nbsp;and&nbsp;computer&nbsp;(ad&nbsp;u&amp;c)</SPAN>中的<SPAN lang=EN>domain&nbsp;controller&nbsp;ou</SPAN>中看见<SPAN lang=EN>server1</SPAN>和<SPAN lang=EN>server2</SPAN>的计算机帐号<SPAN lang=EN><BR>2</SPAN>：<SPAN lang=EN>dns</SPAN>的<SPAN lang=EN>test.com</SPAN>的四个目录（<SPAN lang=EN>tcp&nbsp;udp&nbsp;msdcs&nbsp;sites</SPAN>，里面为<SPAN lang=EN>srv</SPAN>记录）中可以发现<SPAN lang=EN>server2</SPAN>的<SPAN lang=EN>srv</SPAN>记录。如果没有，重起<SPAN lang=EN>server2</SPAN>上的<SPAN lang=EN>netlogon</SPAN>服务<SPAN lang=EN><BR><BR></SPAN>，同时可以尝试用<SPAN lang=EN>ipcpnfig&nbsp;/registerdns</SPAN>重新注册。<SPAN lang=EN><BR>3</SPAN>：可以在两台域控制器上添加新的对象，然后看相互复制是否正常。<SPAN lang=EN><BR>4</SPAN>：当然，其他比如<SPAN lang=EN>dcdiag</SPAN>，<SPAN lang=EN>repmonitor</SPAN>等工具可以用来检查一些问题，不过这是个简易贴，就不说了阿。<SPAN lang=EN><BR>5</SPAN>：查看事件查看器，确保无任何不良记录。<SPAN lang=EN><BR><BR><BR><BR></SPAN>－－－－－－－－－－－－－－－－情况<SPAN lang=EN>3</SPAN>，一个森林，一个树，两个域－－－－－－<SPAN lang=EN><BR></SPAN>安装完后，森林内有一棵树，两个<SPAN lang=EN>domain</SPAN>：<SPAN lang=EN>test.com,&nbsp;sub.test.com,</SPAN>其中<SPAN lang=EN>server2</SPAN>为<SPAN lang=EN>sub</SPAN>的<SPAN lang=EN>DC</SPAN>。<SPAN lang=EN><BR><BR></SPAN>关于<SPAN lang=EN>test</SPAN>。<SPAN lang=EN>com</SPAN>的安装方法，仍然参照<SPAN lang=EN>1a,1b<BR><BR></SPAN>下面是将<SPAN lang=EN>server2</SPAN>安装成<SPAN lang=EN>sub.test.com</SPAN>的<SPAN lang=EN>dc</SPAN>。<SPAN lang=EN><BR><BR><BR>3a)dns</SPAN>配置<SPAN lang=EN><BR><BR>1</SPAN>：在<SPAN lang=EN>server1</SPAN>的<SPAN lang=EN>dns</SPAN>上（简易做法），创建<SPAN lang=EN>sub.test.com</SPAN>的<SPAN lang=EN>zone</SPAN>，设置动态更新为<SPAN lang=EN>yes<BR>2</SPAN>：将<SPAN lang=EN>server2</SPAN>的<SPAN lang=EN>dns</SPAN>指向<SPAN lang=EN>192</SPAN>。<SPAN lang=EN>168</SPAN>。<SPAN lang=EN>0</SPAN>。<SPAN lang=EN>1<BR>3</SPAN>：修改<SPAN lang=EN>server2</SPAN>的<SPAN lang=EN>primary&nbsp;dns&nbsp;suffix</SPAN>为<SPAN lang=EN>sub.test.com<BR>4</SPAN>：重起<SPAN lang=EN><BR>5</SPAN>：在<SPAN lang=EN>sub.test.com</SPAN>这个<SPAN lang=EN>zone</SPAN>中找到<SPAN lang=EN>server2</SPAN>的<SPAN lang=EN>a</SPAN>记录<SPAN lang=EN><BR><BR><BR><BR>3b</SPAN>）<SPAN lang=EN><BR>1</SPAN>：<SPAN lang=EN>dcpromo<BR>2</SPAN>：选择安装为新域的域控制器－－放入一个已经存在的树<SPAN lang=EN><BR>3</SPAN>：填入<SPAN lang=EN>enterprise&nbsp;admin</SPAN>的身份信息（<SPAN lang=EN>administrator/password/test.com</SPAN>）<SPAN lang=EN><BR>4:&nbsp;</SPAN>出来一个界面，让填域名，上面是父域的名字（<SPAN lang=EN>test.com</SPAN>），中间填入<SPAN lang=EN>sub,</SPAN>下面自动完成，显示全名为<SPAN lang=EN>sub.test.com<BR>5</SPAN>：完成其他选项<SPAN lang=EN><BR><BR>3c</SPAN>）<SPAN lang=EN><BR>1</SPAN>：完成后，在<SPAN lang=EN>server2</SPAN>的<SPAN lang=EN>&nbsp;ad&nbsp;user&nbsp;and&nbsp;computer</SPAN>中的<SPAN lang=EN>domain&nbsp;controller&nbsp;ou</SPAN>中可以找到<SPAN lang=EN>server2</SPAN>的计算机帐号<SPAN lang=EN><BR>2</SPAN>：在<SPAN lang=EN>dns</SPAN>的<SPAN lang=EN>sub.test.com</SPAN>这个<SPAN lang=EN>zone</SPAN>中可以找到关于<SPAN lang=EN>server2</SPAN>的<SPAN lang=EN>srv</SPAN>记录（四个目录），如果没有，按<SPAN lang=EN>3c-2</SPAN>的方法在注册一次<SPAN lang=EN><BR>3</SPAN>：看看<SPAN lang=EN>server2</SPAN>上的<SPAN lang=EN>ad&nbsp;domain&nbsp;and&nbsp;trust</SPAN>工具中是否显示出<SPAN lang=EN>sub.test.com</SPAN>这个<SPAN lang=EN>domain</SPAN>（在<SPAN lang=EN>test.com</SPAN>下有个<SPAN lang=EN>sub</SPAN>）<SPAN lang=EN><BR>4</SPAN>：打开<SPAN lang=EN>ad&nbsp;site&nbsp;and&nbsp;service</SPAN>看看是否有所有的<SPAN lang=EN>site</SPAN>信息，有，说明<SPAN lang=EN>configuration</SPAN>分区的复制大致没有什么问题。<SPAN lang=EN><BR>5</SPAN>：查看事件查看器，确保无任何不良记录。<SPAN lang=EN><BR>6</SPAN>：有其他问题，到论坛提问吧<SPAN lang=EN>&nbsp;^_^<BR><BR>----------------------------</SPAN>情况<SPAN lang=EN>4</SPAN>，一个森林，两棵树，两个域－－－－－－－－－<SPAN lang=EN><BR></SPAN>安装完成后，<SPAN lang=EN>server1</SPAN>为<SPAN lang=EN>test.com</SPAN>的<SPAN lang=EN>dc</SPAN>，<SPAN lang=EN>server2</SPAN>为<SPAN lang=EN>lab.com</SPAN>的<SPAN lang=EN>dc<BR><BR>4a)</SPAN>准备<SPAN lang=EN><BR>1</SPAN>：在<SPAN lang=EN>server1</SPAN>的<SPAN lang=EN>dns</SPAN>上创建<SPAN lang=EN>lab.com</SPAN>这个<SPAN lang=EN>zone</SPAN>，设置动态更新<SPAN lang=EN><BR>2</SPAN>：将<SPAN lang=EN>server2</SPAN>的<SPAN lang=EN>dns</SPAN>指向<SPAN lang=EN>192</SPAN>。<SPAN lang=EN>168</SPAN>。<SPAN lang=EN>0</SPAN>。<SPAN lang=EN>1<BR>3</SPAN>：修改<SPAN lang=EN>server2</SPAN>的<SPAN lang=EN>primary&nbsp;dns&nbsp;suffix</SPAN>为<SPAN lang=EN>lab.com<BR>4</SPAN>：重起<SPAN lang=EN><BR>5</SPAN>：在<SPAN lang=EN>lab.com</SPAN>这个<SPAN lang=EN>zone</SPAN>中找到<SPAN lang=EN>server2</SPAN>的<SPAN lang=EN>a</SPAN>记录<SPAN lang=EN><BR><BR>4b)<BR>1</SPAN>：<SPAN lang=EN>dcpromo<BR>2</SPAN>：选择安装为新域的域控制器－－新树－－放入一个已经存在的森林<SPAN lang=EN><BR>3</SPAN>：填入<SPAN lang=EN>enterprise&nbsp;admin</SPAN>的身份信息（<SPAN lang=EN>administrator/password/test.com</SPAN>）<SPAN lang=EN><BR>4</SPAN>：填入树名为<SPAN lang=EN>lab.com<BR>5</SPAN>：完成其他选项<SPAN lang=EN><BR><BR>4c)<BR>1</SPAN>：完成后，在<SPAN lang=EN>server2</SPAN>的<SPAN lang=EN>&nbsp;ad&nbsp;user&nbsp;and&nbsp;computer</SPAN>中的<SPAN lang=EN>domain&nbsp;controller&nbsp;ou</SPAN>中可以找到<SPAN lang=EN>server2</SPAN>的计算机帐号<SPAN lang=EN><BR>2</SPAN>：在<SPAN lang=EN>dns</SPAN>的<SPAN lang=EN>lab.com</SPAN>这个<SPAN lang=EN>zone</SPAN>中可以找到关于<SPAN lang=EN>server2</SPAN>的<SPAN lang=EN>srv</SPAN>记录（四个目录），如果没有，按<SPAN lang=EN>3c-2</SPAN>的方法在注册一次<SPAN lang=EN><BR>3</SPAN>：看看<SPAN lang=EN>server2</SPAN>上的<SPAN lang=EN>ad&nbsp;domain&nbsp;and&nbsp;trust</SPAN>工具中是否显示出<SPAN lang=EN>lab.com</SPAN>这个<SPAN lang=EN>domain<BR>4</SPAN>：打开<SPAN lang=EN>ad&nbsp;site&nbsp;and&nbsp;service</SPAN>看看是否有所有的<SPAN lang=EN>site</SPAN>信息，有，说明<SPAN lang=EN>configuration</SPAN>分区的复制大致没有什么问题。<SPAN lang=EN><BR>5</SPAN>：查看事件查看器，确保无任何不良记录。</SPAN></DIV><img src ="http://www.cnblogs.com/timothy/aggbug/240515.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47994/" target="_blank">Google号召社区力量为互联网加速</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item></channel></rss>