??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲狠狠成人综合网,中文亚洲成a人片在线观看,亚洲中文字幕无码中文字http://www.tkk7.com/luchunwei/***********zh-cnMon, 12 May 2025 08:55:44 GMTMon, 12 May 2025 08:55:44 GMT60Windows GDI、GDI+ l图 防闪?/title><link>http://www.tkk7.com/luchunwei/archive/2010/06/19/323874.html</link><dc:creator>春天׃开</dc:creator><author>春天׃开</author><pubDate>Sat, 19 Jun 2010 08:09:00 GMT</pubDate><guid>http://www.tkk7.com/luchunwei/archive/2010/06/19/323874.html</guid><wfw:comment>http://www.tkk7.com/luchunwei/comments/323874.html</wfw:comment><comments>http://www.tkk7.com/luchunwei/archive/2010/06/19/323874.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/luchunwei/comments/commentRss/323874.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/luchunwei/services/trackbacks/323874.html</trackback:ping><description><![CDATA[<p>“闪烁”的原因是擦除背景Q用背景色重新填充)与绘制前景图像之间有旉差,而且背景和前景颜色有差异Q导致眼睛看上去好像在闪烁?br /> <span style="background-color: #ffff00">“闪烁”q不主要是因为GDI或GDI+效率低造成的?/span><br /> </p> <p>解决q个问题需从两个方面入手:1.~短Q或消除Q前后景l图旉差,2.减少l制ơ数<br /> <strong>1.~短Q或消除Q前后景l图旉?/strong><br /> <span style="color: #33cccc">OnEraseBkgnd(CDC* pDC)<br /> {<br />     return TRUE;<br /> }</span><br /> <span style="color: red">实际上背景填充是必须Q否则前景图像与D留的背景؜在一起非常杂乱,</span><br /> <span style="color: #0000ff">q里取消的步骤,其实Udl图q程了(?.Q,合成一张完整图像?/span></p> <p><strong>2.减少l制ơ数</strong><br /> 采用“<span style="color: #0000ff">双缓?/span>”技术,先在内存~冲Z完成l图Q再贴到屏幕?br /> <span style="color: #0000ff">另外如果~冲囑փ内容不是变化的,应存为成员对象之c,不要每次ȝ</span><br /> 一般在OnDrawQCDC* pDCQ中完成<br /> <span style="color: #008000">///////////////////////////--GDI --////////////////////////////////////</span><br /> int nWidth=1000;<br /> int nHeight=1000;<br /> CDC MemDC; <span style="color: #008000">//首先定义一个显C备对?<br /> </span>CBitmap MemBitmap;<span style="color: #008000">//定义一个位囑֯?</span><br /> <span style="color: #008000">//随后建立与屏q显C兼容的内存昄讑֤ </span><br /> MemDC.CreateCompatibleDC(pDC); <span style="color: #008000">//q时q不能绘图,因ؓ没有地方?^_^ </span><br /> <span style="color: #008000">//下面建立一个与屏幕昄兼容的位图,至于位图的大嘛Q可以用H口的大?<br /> //Q也可以自己定义Q如Q有滚动条时p大于当前H口的大,在BitBlt时决定拷贝内存的哪部分到屏幕上)</span><br /> MemBitmap.CreateCompatibleBitmap(pDC,nWidth,nHeight); <br /> <span style="color: #008000">//位N入到内存显C备中 <br /> //只有选入了位囄内存昄讑֤才有地方l图Q画到指定的位图?</span><br /> CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap); <br /> <span style="color: #008000">//先用背景色将位图清除q净Q这里用原背景色作ؓ背景 <br /> //你也可以用自己应该用的颜?</span><br /> MemDC.FillSolidRect(0,0,nWidth,nHeight,pDC->GetBkColor()); <br /> <span style="color: #008000">//l图 </span><br /> CBrush brush(RGB(0,255,0));<br />  for(int i=0;i<50;i++)<br />  {<br />   for(int j=0;j<80;j++)<br />   {<br />    //MemDC.Rectangle(10*j,10*i,9,9);<br />    CRect rc(10*j,10*i,10*j+8,10*i+8);<br />    MemDC.FillRect(&rc,&brush);<br />   }<br />  }<br /> <span style="color: #008000">//内存中的图拯到屏q上q行昄 </span><br /> pDC->BitBlt(0,0,nWidth,nHeight,&MemDC,0,0,SRCCOPY); <br /> <span style="color: #008000">//l图完成后的清理 </span><br /> MemBitmap.DeleteObject(); <br /> MemDC.DeleteDC(); </p> <p><br /> <span style="color: #008000">///////////////////////////--GDI+ --////////////////////////////////////</span><br />  Bitmap* buf=new Bitmap(2000,2000) ;<br />  Graphics gc(buf);//Graphics.FromImage(buf);<br />  //反锯?br />  //gc.SetSmoothingMode(SmoothingModeAntiAlias);<br />  SolidBrush bgbrush(Color(255,255,255,255));<br />  <span style="color: #ff00ff">gc.FillRectangle(&bgbrush,0,0,2000,2000);<span style="color: #008000">//背景填充</span><br /> </span> Pen      pen(Color(255, 0, 0, 255));<br />  SolidBrush sbrush(Color(255,0,255,255));<br />  for(int i=0;i<60;i++)<br />  {<br />   for(int j=0;j<60;j++)<br />    gc.FillRectangle(&sbrush,10*j,10*i,9,9);<br />  }<br />  Graphics G(pDC->GetSafeHdc()); <br />  G.DrawImage(buf ,0,0);</p> <p> </p> <img src ="http://www.tkk7.com/luchunwei/aggbug/323874.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/luchunwei/" target="_blank">春天׃开</a> 2010-06-19 16:09 <a href="http://www.tkk7.com/luchunwei/archive/2010/06/19/323874.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Visual studio 2008/2010 MFCE序Menu、Toolbar字体偏小解决办法http://www.tkk7.com/luchunwei/archive/2010/06/09/323118.html春天׃开春天׃开Wed, 09 Jun 2010 00:49:00 GMThttp://www.tkk7.com/luchunwei/archive/2010/06/09/323118.htmlhttp://www.tkk7.com/luchunwei/comments/323118.htmlhttp://www.tkk7.com/luchunwei/archive/2010/06/09/323118.html#Feedback2http://www.tkk7.com/luchunwei/comments/commentRss/323118.htmlhttp://www.tkk7.com/luchunwei/services/trackbacks/323118.html首先Q这是一个MFC的Bug
http://connect.microsoft.com/VisualStudio/feedback/details/505466/mfc-visual-style-font-size-too-small-to-display-chinese-character-clearly-on-windows-xp

解决旉暂时q不定Q时的Ҏ如下Q?br /> App在InitInstance中加入:

LOGFONT logfont = {0};
:: SystemParametersInfo(SPI_GETICONTITLELOGFONT, sizeof(LOGFONT), &logfont, 0);
afxGlobalData.SetMenuFont(&logfont,true);

注释Q?/p>

字体的设|保存在一个全局变量afxGlobalData中,此变量定义AfxGlobals.h中?br /> AFX_GLOBAL_DATA中有一个SetMenuFont可以讑֮字体属性,影响Menu、Toolbar、Dock Pane{的caption字体?br /> 但是q个讄对tooltip无媄响,临时解决Q在上面代码基础上在加入

if(afxGlobalData.fontTooltip.GetSafeHandle() != NULL)
 {
  ::DeleteObject(afxGlobalData.fontTooltip.Detach());
 }
 afxGlobalData.fontTooltip.CreateFontIndirect(&logfont);



春天׃开 2010-06-09 08:49 发表评论
]]>
DC/DC的工作原?http://www.tkk7.com/luchunwei/archive/2009/07/13/286561.html春天׃开春天׃开Mon, 13 Jul 2009 06:42:00 GMThttp://www.tkk7.com/luchunwei/archive/2009/07/13/286561.htmlhttp://www.tkk7.com/luchunwei/comments/286561.htmlhttp://www.tkk7.com/luchunwei/archive/2009/07/13/286561.html#Feedback0http://www.tkk7.com/luchunwei/comments/commentRss/286561.htmlhttp://www.tkk7.com/luchunwei/services/trackbacks/286561.htmlҎ调整的工作状态,我们常把E_甉|分成两类Q?font color="#ff0000">U性稳压电?/font>?/span>开关稳压电?/font>?/span>

   

    U性稳压电源,是指调整工作在U性状态下的稳压电源。而在开关电?/span>中则不一P开关管Q?font color="#0033ff">在开关电源中Q我们一般把调整叫做开关管Q是工作在开、关两种状态下的:开——电d;关——电d?/font>?/span>

     开关电源是一U比较新型的甉|。它h效率高,重量轻,可升、降压,输出功率?/font>{优炏V但是由于电路工作在开关状态,所?font color="#f70909">噪声比较?/font>?/span> 通过下图Q我们来单的说说降压型开关电源的工作原理。如图所C,电\由开?/font>KQ实际电路中Z极管或者场效应)Q?font color="#ff0000">l流二极?/font>DQ?font color="#ff0000">储能甉|LQ?font color="#ff0000">滤L电容C{构成。当开关闭合时Q电源通过开?/span>K、电?/span>Ll?/span>负蝲供电Qƈ部分电能储存在甉|L以及电容C中。由于电?/span>L的自感,在开x通后Q电增大得比较~慢Q即输出不能立刻辑ֈ甉|电压倹{?/span>一定时间后Q开x开Q由于电?/span>L的自感作用(可以比较形象的认?/span>甉|中的甉|有惯性作用)Q将保持电\中的甉|不变Q即从左往右l流?/span>q电流q负载,从地U返回,到l流二极?/span>D的正极,l过二极?/span>DQ?/span>q回甉|L的左端,从而Ş成了一个回路。通过控制开关闭合跟断开?/span>旉Q?font color="#ff0000">?/font>PWM——脉冲宽度调?/font>Q,可以控制输出电压。如果通过?/span>输出电压来控制开、关的时_以保持输出电压不变,q就实现了稳?/span>的目的?/span>

 

 500)this.width=500" border="0">

在开关闭合期_甉|存储能量Q在开x开期间Q电感释放能量,所以电?/span>L叫做储能甉|。二极管D在开x开期间Q负责给甉|L提供甉|通\Q所以二极管D叫做l流二极?/font>?/span>

 

 在实际的开关电源中Q开?/span>K׃极管或场效应代ѝ当开x开Ӟ甉|很小Q当开关闭合时Q电压很,所以发热功?/span>U×I׃很小?/span>q就是开关电源效率高的原因?/span>

 

看过完两个关于电源的FAQ后,大家可能对电源的效率计算q不了解。在后面的FAQ中,我们专门给大家介绍?/span>

摘自|络.



春天׃开 2009-07-13 14:42 发表评论
]]>
MySQL 备䆾和恢?/title><link>http://www.tkk7.com/luchunwei/archive/2009/05/16/271042.html</link><dc:creator>春天׃开</dc:creator><author>春天׃开</author><pubDate>Sat, 16 May 2009 14:01:00 GMT</pubDate><guid>http://www.tkk7.com/luchunwei/archive/2009/05/16/271042.html</guid><wfw:comment>http://www.tkk7.com/luchunwei/comments/271042.html</wfw:comment><comments>http://www.tkk7.com/luchunwei/archive/2009/05/16/271042.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/luchunwei/comments/commentRss/271042.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/luchunwei/services/trackbacks/271042.html</trackback:ping><description><![CDATA[http://imysql.cn/mysql_backup_and_recover<br /> <br /> <br /> <p><span id="sa4um8g" class="style1">?译者:叉荣,来源Q?a >http://imysql.cn</a>Q{载请注明?译者和出处Qƈ且不能用于商业用途,q者必I?/span></p> <p>日期Q?006/10/01</p> <p>本文讨论 MySQL 的备份和恢复机制Q以及如何维护数据表Q包括最主要的两U表cdQ?code>MyISAM</code> ?<code>Innodb</code>Q文中设计的 MySQL 版本?5.0.22?/p> <p>目前 MySQL 支持的免费备份工hQ?code>mysqldump、mysqlhotcopy</code>Q还可以?SQL 语法q行备䆾Q?code>BACKUP TABLE</code> 或?<code>SELECT INTO OUTFILE</code>Q又或者备?code>二进制日志(binlogQ?/code>Q还可以?code>直接拯数据文g和相关的配置文g</code>。MyISAM 表是保存成文件的形式Q因此相Ҏ较容易备份,上面提到的几U方法都可以使用?code>Innodb</code> 所有的表都保存在同一个数据文?<code>ibdata1</code> 中(也可能是多个文gQ或者是独立的表I间文gQ,相对来说比较不好备䆾Q免费的Ҏ可以?code>拯数据文g</code>?code>备䆾 binlog</code>Q或者用 <code>mysqldump</code>?/p> <h3>1、mysqldump</h3> <h4>1.1 备䆾</h4> <p><code>mysqldump</code> 是采用SQLU别的备份机Ӟ它将数据表导?SQL 脚本文gQ在不同?MySQL 版本之间升时相Ҏ较合适,q也是最常用的备份方法?br /> 现在来讲一?<code>mysqldump</code> 的一些主要参敎ͼ</p> <ul type="1"> <li>--compatible=name <p>它告?mysqldumpQ导出的数据和哪种数据库或哪个旧版本的 MySQL 服务器相兼容。值可以ؓ <code>ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options</code> {,要用几个|用逗号它们隔开。当然了Q它q不保证能完全兼容,而是量兼容?</p> </li> <li>--complete-insertQ?c <p>导出的数据采用包含字D名的完?<code>INSERT</code> 方式Q也是把所有的值都写在一行。这么做能提高插入效率,但是可能会受?<code>max_allowed_packet</code> 参数的媄响而导致插入失败。因此,需要}慎用该参数Q至我不推荐?</p> </li> <li>--default-character-set=charset <p>指定导出数据旉用何U字W集Q如果数据表不是采用默认?<code>latin1</code> 字符集的话,那么导出时必L定该选项Q否则再ơ导入数据后生ؕ码问题?/p> </li> <li>--disable-keys <p>告诉 <code>mysqldump</code> ?<code>INSERT</code> 语句的开头和l尾增加 <code>/*!40000 ALTER TABLE table DISABLE KEYS */;</code> ?<code>/*!40000 ALTER TABLE table ENABLE KEYS */;</code> 语句Q这能大大提高插入语句的速度Q因为它是在插入完所有数据后才重建烦引的。该选项只适合 <code>MyISAM</code> 表?/p> </li> <li>--extended-insert = true|false <p>默认情况下,<code>mysqldump</code> 开?<code>--complete-insert</code> 模式Q因此不想用它的的话Q就使用本选项Q设定它的gؓ <code>false</code> 卛_?</p> </li> <li>--hex-blob <p>使用十六q制格式导出二进制字W串字段。如果有二进制数据就必须使用本选项。媄响到的字D늱型有 <code>BINARY、VARBINARY、BLOB</code>?/p> </li> <li>--lock-all-tablesQ?x <p>在开始导Z前,提交h锁定所有数据库中的所有表Q以保证数据的一致性。这是一个全局读锁Qƈ且自动关?<code>--single-transaction</code> ?<code>--lock-tables</code> 选项?/p> </li> <li>--lock-tables <p>它和 <code>--lock-all-tables</code> cMQ不q是锁定当前导出的数据表Q而不是一下子锁定全部库下的表。本选项只适用?<code>MyISAM</code> 表,如果?<code>Innodb</code> 表可以用 <code>--single-transaction</code> 选项?/p> </li> <li>--no-create-infoQ?t <p>只导出数据,而不d <code>CREATE TABLE</code> 语句?/p> </li> <li>--no-dataQ?d <p>不导ZQ何数据,只导出数据库表结构?/p> </li> <li>--opt <p>q只是一个快捷选项Q等同于同时d <code>--add-drop-tables --add-locking --create-option --disable-keys --extended-insert --lock-tables --quick --set-charset</code> 选项。本选项能让 <code>mysqldump</code> 很快的导出数据,q且导出的数据能很快导回。该选项默认开启,但可以用 <code>--skip-opt</code> 用。注意,如果q行 <code>mysqldump</code> 没有指定 <code>--quick</code> ?<code>--opt</code> 选项Q则会将整个l果集放在内存中。如果导出大数据库的话可能会出现问题?/p> </li> <li>--quickQ?q <p>该选项在导出大表时很有用,它强?<code>mysqldump</code> 从服务器查询取得记录直接输出而不是取得所有记录后它们缓存到内存中?/p> </li> <li>--routinesQ?R <p>导出存储q程以及自定义函数?/p> </li> <li>--single-transaction <p>该选项在导出数据之前提交一?<code>BEGIN</code> SQL语句Q?code>BEGIN</code> 不会dM应用E序且能保证导出时数据库的一致性状态。它只适用于事务表Q例?<code>InnoDB</code> ?<code>BDB</code>?br /> 本选项?<code>--lock-tables</code> 选项是互斥的Q因?<code>LOCK TABLES</code> 会M挂v的事务隐含提交?br /> 要想导出大表的话Q应l合使用 <code>--quick</code> 选项?</p> </li> <li>--triggers <p>同时导出触发器。该选项默认启用Q用 <code>--skip-triggers</code> 用它?/p> </li> </ul> <p>其他参数详情请参考手册,我通常使用以下 SQL 来备?<code>MyISAM</code> 表:</p> <pre>/usr/local/mysql/bin/mysqldump -uyejr -pyejr \ --default-character-set=utf8 --opt --extended-insert=false \ --triggers -R --hex-blob -x db_name > db_name.sql </pre> <p>使用以下 SQL 来备?<code>Innodb</code> 表:</p> <pre>/usr/local/mysql/bin/mysqldump -uyejr -pyejr \ --default-character-set=utf8 --opt --extended-insert=false \ --triggers -R --hex-blob --single-transaction db_name > db_name.sql </pre> <p>另外Q如果想要实现在U备份,q可以?<code>--master-data</code> 参数来实玎ͼ如下Q?/p> <pre>/usr/local/mysql/bin/mysqldump -uyejr -pyejr \ --default-character-set=utf8 --opt --master-data=1 \ --single-transaction --flush-logs db_name > db_name.sql </pre> <p>它只是在一开始的瞬间h锁表Q然后就hbinlog了,而后在导出的文g中加?code>CHANGE MASTER</code> 语句来指定当前备份的binlog位置Q如果要把这个文件恢复到slave里去Q就可以采用q种Ҏ来做?</p> <h4>1.2 q原</h4> <p>?<code>mysqldump</code> 备䆾出来的文件是一个可以直接倒入?SQL 脚本Q有两种Ҏ可以数据导入?/p> <ul type="1"> <li>直接?<code>mysql</code> 客户? <p>例如Q?/p> <pre>/usr/local/mysql/bin/mysql -uyejr -pyejr db_name < db_name.sql </pre> <p> </p> </li> <li>?SOURCE 语法 <p>其实q不是标准的 SQL 语法Q而是 <code>mysql</code> 客户端提供的功能Q例如:</p> <pre>SOURCE /tmp/db_name.sql; </pre> <p>q里需要指定文件的l对路径Qƈ且必L <code>mysqld</code> q行用户(例如 nobody)有权限读取的文g?/p> </li> </ul> <h3>2?mysqlhotcopy</h3> <h4>2.1 备䆾</h4> <p><code>mysqlhotcopy</code> 是一?PERL E序Q最初由Tim Bunce~写。它使用 <code>LOCK TABLES、FLUSH TABLES</code> ?<code>cp</code> ?<code>scp</code> 来快速备份数据库。它是备份数据库或单个表的最快的途径Q但它只能运行在数据库文Ӟ包括数据表定义文件、数据文件、烦引文Ӟ所在的机器上?code>mysqlhotcopy</code> 只能用于备䆾 <code>MyISAM</code>Qƈ且只能运行在 <code>cUnix</code> ?<code>NetWare</code> pȝ上?/p> <p><code>mysqlhotcopy</code> 支持一ơ性拷贝多个数据库Q同时还支持正则表达。以下是几个例子Q?/p> <pre>root#/usr/local/mysql/bin/mysqlhotcopy -h=localhost -u=yejr -p=yejr \ db_name /tmp (把数据库目录 <tt>db_name</tt> 拯?<tt>/tmp</tt> ? root#/usr/local/mysql/bin/mysqlhotcopy -h=localhost -u=yejr -p=yejr \ db_name_1 ... db_name_n /tmp root#/usr/local/mysql/bin/mysqlhotcopy -h=localhost -u=yejr -p=yejr \ db_name./regex/ /tmp </pre> <p>更详l的使用Ҏh看手册,或者调用下面的命o来查?<code>mysqlhotcopy</code> 的帮助:</p> <pre>perldoc /usr/local/mysql/bin/mysqlhotcopy </pre> <p>注意Q想要?<code>mysqlhotcopy</code>Q必要?<code>SELECT、RELOAD(要执?FLUSH TABLES)</code> 权限Qƈ且还必须要能够有d <tt>datadir/db_name</tt> 目录的权限?</p> <h4>2.2 q原</h4> <p><code>mysqlhotcopy</code> 备䆾出来的是整个数据库目录,使用时可以直接拷贝到 <code>mysqld</code> 指定?<tt>datadir</tt> (在这里是 <tt>/usr/local/mysql/data/</tt>)目录下即可,同时要注意权限的问题Q如下例Q?/p> <pre>root#cp -rf db_name /usr/local/mysql/data/ root#chown -R nobody:nobody /usr/local/mysql/data/ (?db_name 目录的属L?<code>mysqld</code> q行用户) </pre> <p> </p> <h3>3?SQL 语法备䆾</h3> <h4>3.1 备䆾</h4> <p><code>BACKUP TABLE</code> 语法其实?<code>mysqlhotcopy</code> 的工作原理差不多Q都是锁表,然后拯数据文g。它能实现在U备份,但是效果不理惻I因此不推荐用。它只拷贝表l构文g和数据文Ӟ不同时拷贝烦引文Ӟ因此恢复时比较慢?br /> 例子Q?/p> <pre>BACK TABLE tbl_name TO '/tmp/db_name/'; </pre> <p>注意Q必要?<code>FILE</code> 权限才能执行本SQLQƈ且目?<tt>/tmp/db_name/</tt> 必须能被 <code>mysqld</code> 用户可写Q导出的文g不能覆盖已经存在的文Ӟ以避免安全问题?</p> <p><code>SELECT INTO OUTFILE</code> 则是把数据导出来成ؓ普通的文本文gQ可以自定义字段间隔的方式,方便处理q些数据?br /> 例子Q?/p> <pre>SELECT * INTO OUTFILE '/tmp/db_name/tbl_name.txt' FROM tbl_name; </pre> <p>注意Q必要?<code>FILE</code> 权限才能执行本SQLQƈ且文?<tt>/tmp/db_name/tbl_name.txt</tt> 必须能被 <code>mysqld</code> 用户可写Q导出的文g不能覆盖已经存在的文Ӟ以避免安全问题?</p> <h4>3.2 恢复</h4> <p>?<code>BACKUP TABLE</code> Ҏ备䆾出来的文Ӟ可以q行 <code>RESTORE TABLE</code> 语句来恢复数据表?br /> 例子Q?/p> <pre>RESTORE TABLE FROM '/tmp/db_name/'; </pre> <p>权限要求cM上面所q?/p> <p>?<code>SELECT INTO OUTFILE</code> Ҏ备䆾出来的文Ӟ可以q行 <code>LOAD DATA INFILE</code> 语句来恢复数据表?br /> 例子Q?/p> <pre>LOAD DATA INFILE '/tmp/db_name/tbl_name.txt' INTO TABLE tbl_name; </pre> <p>权限要求cM上面所q。倒入数据之前Q数据表要已l存在才行。如果担心数据会发生重复Q可以增?<code>REPLACE</code> 关键字来替换已有记录或者用 <code>IGNORE</code> 关键字来忽略他们?/p> <h3>4?启用二进制日?binlog)</h3> <p>采用 <code>binlog</code> 的方法相Ҏ说更灉|Q省心省力,而且q可以支持增量备份?/p> <p>启用 <code>binlog</code> 时必要重启 <code>mysqld</code>。首先,关闭 <code>mysqld</code>Q打开 <code>my.cnf</code>Q加入以下几行:</p> <pre>server-id = 1 log-bin = binlog log-bin-index = binlog.index </pre> <p>然后启动 <code>mysqld</code> 可以了。运行过E中会?<code>binlog.000001</code> 以及 <code>binlog.index</code>Q前面的文g?<code>mysqld</code> 记录所有对数据的更新操作,后面的文件则是所?<code>binlog</code> 的烦引,都不能轻易删除。关?<code>binlog</code> 的信息请查看手册?/p> <p>需要备份时Q可以先执行一?SQL 语句Q让 <code>mysqld</code> l止对当?<code>binlog</code> 的写入,可以把文g直接备䆾Q这L话就能达到增量备份的目的了:</p> <pre>FLUSH LOGS;</pre> <p>如果是备份复制系l中的从服务器,q应该备?<tt>master.info</tt> ?<tt>relay-log.info</tt> 文g?</p> <p>备䆾出来?<code>binlog</code> 文g可以?MySQL 提供的工?<code>mysqlbinlog</code> 来查看,如:</p> <pre>/usr/local/mysql/bin/mysqlbinlog /tmp/binlog.000001 </pre> <p>该工具允怽昄指定的数据库下的所?SQL 语句Qƈ且还可以限定旉范围Q相当的方便Q详l的h看手册?/p> <p>恢复Ӟ可以采用cM以下语句来做刎ͼ</p> <pre>/usr/local/mysql/bin/mysqlbinlog /tmp/binlog.000001 | mysql -uyejr -pyejr db_name </pre> <p>?<code>mysqlbinlog</code> 输出?SQL 语句直接作ؓ输入来执行它?/p> <p>如果你有I闲的机器,不妨采用q种方式来备份。由于作?<code>slave</code> 的机器性能要求相对不是那么高,因此成本低,用低成本p实现增量备䆾而且q能分担一部分数据查询压力Q何乐而不为呢Q?/p> <h3>5?直接备䆾数据文g</h3> <p>相较前几U方法,备䆾数据文g最为直接、快速、方便,~点是基本上不能实现增量备䆾。ؓ了保证数据的一致性,需要在靠背文g前,执行以下 SQL 语句Q?/p> <pre>FLUSH TABLES WITH READ LOCK;</pre> <p>也就是把内存中的数据都刷新到盘中,同时锁定数据表,以保证拷贝过E中不会有新的数据写入。这U方法备份出来的数据恢复也很单,直接拯回原来的数据库目录下卛_?/p> <p>注意Q对?<code>Innodb</code> cd表来_q需要备份其日志文gQ即 <code>ib_logfile*</code> 文g。因为当 <code>Innodb</code> 表损坏时Q就可以依靠q些日志文g来恢复?/p> <h3>6?备䆾{略</h3> <p>对于中等U别业务量的pȝ来说Q备份策略可以这么定Q第一ơ全量备份,每天一ơ增量备份,每周再做一ơ全量备份,如此一直重复。而对于重要的且繁忙的pȝ来说Q则可能需要每天一ơ全量备份,每小时一ơ增量备份,甚至更频J。ؓ了不影响U上业务Q实现在U备份,q且能增量备份,最好的办法是采用M复制机制(<code>replication</code>)Q在 <code>slave</code> 机器上做备䆾?/p> <h3>7?数据l护和灾难恢?/h3> <p>作ؓ一名DBA(我目前还不是Q呵?Q最重要的工作内容之一是保证数据表能安全、稳定、高速用。因此,需要定期维护你的数据表。以?SQL 语句很有用Q?/p> <pre>CHECK TABLE ?REPAIR TABLEQ检查或l护 MyISAM ? OPTIMIZE TABLEQ优?MyISAM ? ANALYZE TABLEQ分?MyISAM ? </pre> <p>当然了,上面q些命o起始都可以通过工具 <code>myisamchk</code> 来完成,在这里不作详q?/p> <p><code>Innodb</code> 表则可以通过执行以下语句来整理碎片,提高索引速度Q?/p> <pre>ALTER TABLE tbl_name ENGINE = Innodb; </pre> <p>q其实是一?<code>NULL</code> 操作Q表面上看什么也不做Q实际上重新整理片了?/p> <p>通常使用?<code>MyISAM</code> 表可以用上面提到的恢复方法来完成。如果是索引坏了Q可以用 <code>myisamchk</code> 工具来重建烦引。而对?<code>Innodb</code> 表来_没q么直接了,因ؓ它把所有的表都保存在一个表I间了。不q?<code>Innodb</code> 有一个检查机制叫 <code>模糊查点</code>Q只要保存了日志文gQ就能根据日志文件来修复错误。可以在 <tt>my.cnf</tt> 文g中,增加以下参数Q让 <code>mysqld</code> 在启动时自动查日志文Ӟ</p> <pre>innodb_force_recovery = 4 </pre> <p>关于该参数的信息h看手册?/p> <h3>8?ȝ</h3> <p>做好数据备䆾Q定只好合适的备䆾{略Q这是一个DBA所做事情的一部分,万事开头难Q就从现在开始吧Q?/p> <img src ="http://www.tkk7.com/luchunwei/aggbug/271042.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/luchunwei/" target="_blank">春天׃开</a> 2009-05-16 22:01 <a href="http://www.tkk7.com/luchunwei/archive/2009/05/16/271042.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]CListCtrl使用技?-学习?/title><link>http://www.tkk7.com/luchunwei/archive/2009/04/30/268318.html</link><dc:creator>春天׃开</dc:creator><author>春天׃开</author><pubDate>Thu, 30 Apr 2009 03:20:00 GMT</pubDate><guid>http://www.tkk7.com/luchunwei/archive/2009/04/30/268318.html</guid><description><![CDATA[     摘要: 1. CListCtrl 风格 <br>2. 讄listctrl 风格及扩展风?<br>3. 插入数据 <br>4. 一直选中item <br>5. 选中和取消选中一?<br>6. 得到listctrl中所有行的checkbox的状?<br>7. 得到listctrl中所有选中行的序号 <br>8. 得到item的信?<br>9. 得到listctrl的所有列的header字符串内?<br>10. 使listctrl中一可见,x动滚动条 <br>11. 得到listctrl列数 <br>12. 删除所有列 <br>13. 得到单击的listctrl的行列号 <br>14. 判断是否点击在listctrl的checkbox?<br>15. 右键点击listctrl的item弹出菜单 <br>16. item切换焦点?包括用键盘和鼠标切换item?Q状态的一些变化顺?<br>17. 得到另一个进E里的listctrl控g的item内容 <br>18. 选中listview中的item <br>19. 如何在CListView中用CListCtrl的派生类 <br  <a href='http://www.tkk7.com/luchunwei/archive/2009/04/30/268318.html'>阅读全文</a><img src ="http://www.tkk7.com/luchunwei/aggbug/268318.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/luchunwei/" target="_blank">春天׃开</a> 2009-04-30 11:20 <a href="http://www.tkk7.com/luchunwei/archive/2009/04/30/268318.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转蝲]MIME邮g的编码方?/title><link>http://www.tkk7.com/luchunwei/archive/2008/07/31/218918.html</link><dc:creator>春天׃开</dc:creator><author>春天׃开</author><pubDate>Thu, 31 Jul 2008 02:52:00 GMT</pubDate><guid>http://www.tkk7.com/luchunwei/archive/2008/07/31/218918.html</guid><wfw:comment>http://www.tkk7.com/luchunwei/comments/218918.html</wfw:comment><comments>http://www.tkk7.com/luchunwei/archive/2008/07/31/218918.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/luchunwei/comments/commentRss/218918.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/luchunwei/services/trackbacks/218918.html</trackback:ping><description><![CDATA[转自Qhttp://book.csdn.net/bookfiles/402/10040214756.shtml<br /> <br /> MIME邮g的编码方? <p style="margin: 12pt 0cm; text-indent: 21pt">׃每个ASCII码字W只占用一个字节(8个bit位)Q且最高bit位Mؓ0Q即ASCII码字W中的有真正意义的信息只是后面的7个低bit位,而传l的SMTP协议又是ZASCII码字W设计的Q因此,一些基于传lSMTP协议设计的SMTP服务器在处理邮g内容时只取出每个字节中的7个低bit位进行处理,而将最高bit位忽略不计。显Ӟq样的SMTP服务器在处理包含有非ASCII码字W的邮g内容Ӟ会出C重的问题Q这限制了邮g中只能出现英文的ASCII码字W,而不能出C文字W或二进制数据?/p> <p style="margin: 12pt 0cm; text-indent: 21pt">Z能够在邮件内容中包含中文、图像或声音{非ASCII字符的数据,Z惛_了采用某U编码方式将非ASCII字符的数据{换成可打印的ASCII字符后再发送,邮g阅读E序则按照相应的解码方式从邮件中q原出原始数据即可,比较常用的两U邮件编码方式ؓBASE64和Quoted-printable。后来的扩展SMTP协议允许直接在邮件中传递二q制数据Q而不用对它们q行邮g~码Qh们将q种没有q行邮g~码的二q制数据的邮件内容称?bit~码Qؓ了与此相区别Qh们将没有q行邮g~码的纯ASCII码字W的邮gUCؓ7bit~码。MIME消息体的邮g~码方式通过MIME消息头中的Content- Transfer- Encoding头字D|定,每种邮g~码方式的介l如下:</p> <p>?nbsp; 7Bit</p> <p style="margin: 12pt 0cm 12pt 31.5pt; text-indent: 21pt">指消息体内容全部是没有经q编码的ASCII字符?/p> <p style="margin: 12pt 0cm; text-indent: 21pt">?nbsp; 8Bit</p> <p style="margin: 12pt 0cm 12pt 31.5pt; text-indent: 21pt">指消息体内容是没有经q编码的原始数据Q且其中包含有非ASCII字符的数据。现在的邮g服务器基本上都支?Bit~码Q用支?Bit~码的邮件服务器可以化邮件的处理q程?/p> <p style="margin: 12pt 0cm; text-indent: 21pt">?nbsp; BASE64</p> <p style="margin: 12pt 0cm 12pt 31.5pt; text-indent: 21pt">Base64是将二进制数据{换成可打印的ASCII字符的一U最常见的编码方式,它的基本原理是将一l连l的字节数据?个bit位进行分l,然后Ҏl数据用一个ASCII字符来表C?个bit位最多能表示2<sup>6</sup>Q?4个数|因此可以使用64个ASCII字符来对应这64个数|q?4个ASCII字符为:</p> <p style="margin-left: 31.1pt">"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"</p> <p style="margin: 12pt 0cm 12pt 31.5pt; text-indent: 21pt">其中每个字符表示的数值就是该字符在上面的排列中的索引P索引号从0开始编受假讑֜内存中有如下三个q箋的字节数据:</p> <p style="text-indent: 31.2pt">[0110,0001] [0110,0010] [0110,0011]</p> <p style="margin: 12pt 0cm 12pt 31.5pt; text-indent: 21pt">它们按6个bit位进行分l后的Ş式如下:</p> <p style="text-indent: 31.2pt">[0110,00] [01,0110,] [0010,01] [10,0011]</p> <p style="margin: 12pt 0cm 12pt 31.5pt; text-indent: 21pt">分组后得C四组数据Q每l数据对应的十进制数值分别ؓ24?2??5Q它们分别对应Y、W、J、jq四个字W,所以,对[0110,0001] [0110,0010] [0110,0011]q三个字节的数据q行BASE64~码后的l果?#8220;YWJj”?/p> <p style="margin: 12pt 0cm 12pt 31.5pt; text-indent: 21pt">BASE64~码要求??位字节(?4个bitQ的数据转化??位字节(也是24个bitQ的数据Q如果原来的8位字节数据的字节个数不能?整除Q其余数只能??Q那么如何对余下?个或2?位字节数据进行处理呢Q对于这U情况,仍然?个bit位对剩余的字节进行分l,在最后不?个bit位的内容后面d几个?的bit位来凑成6个bit位,例如Q如果最后剩下的一?位字节的内容如下Q?/p> <p style="text-indent: 31.2pt">[0110,0001]</p> <p style="margin: 12pt 0cm 12pt 31.5pt; text-indent: 21pt">对它q行分组后的l果如下Q?/p> <p style="text-indent: 31.2pt">[0110,00] [01,<em>0000</em>]</p> <p style="margin: 12pt 0cm 12pt 31.5pt; text-indent: 21pt">其中用黑斜体标识?为填充的bit位,所以,最后剩下的q个字节的BASE64~码l果?#8220;YQ”。BASE64~码q有规定Q如果编码后的整个结果文本的字符个数不是4的整数倍,那么需要在最后填?#8220;=”字符来凑?的倍数Q所以,在最后这个字节编码的l果后面q要d两个“=”字符Q即“YQ==”。显Ӟ如果最后剩下两?位字节的内容Q它可以被编码成三个字符Q最后还需要添加一?#8220;=”字符。对一大段数据q行BASE64~码Ӟ可以在编码结果中的适当位置加入回R换行QMIME规范BASE64~码l果中的每行最?6个字W?/p> <p>?nbsp; Quoted-printable</p> <p style="margin: 12pt 0cm 12pt 31.5pt; text-indent: 21pt">Quoted-printable也是一U将二进制数据{换成可打印的ASCII字符的编码方式,它对ASCII字符不进行{换,只对非ASCII字符的数据进行编码{化。每个非ASCII字符的字节数据,都被转换成一?="号后跟这个字节的十六q制数据Q例如,“ab中国”的Quoted-printable~码l果?#8220;ab=d6=d0=b9= fa”。显Ӟ׃"="号在Quoted-printable~码中具有的Ҏ意义Q所以,原始数据中的"="号字W也需要进行编码{换,?#8220;=3d”表示?/p> <p style="margin: 12pt 0cm 12pt 31.5pt; text-indent: 21pt">对一大段数据q行Quoted-printable~码Ӟ可以在编码结果中的适当位置加入回R换行Q在回R换行前需要额外再加入一?#8220;=”字符Q以表示后面的换行是因编码而造成的Y回RQ而非原始数据中原有的回R换行。例如,对于下面一DQuoted-printable~码后的数据Q?/p> <p style="text-indent: 31.2pt">=D5=E2=CA=C7=CD=A8=D0=C5=B5=C4=B3=CC=D0=</p> <p style="text-indent: 31.2pt">=F2, =C7=EB=D6=B8=BD=CC!</p> <p style="margin: 12pt 0cm 12pt 31.5pt; text-indent: 21pt">在第一行末“=”字符和换行,都是׃~码后生成的?/p> <img src ="http://www.tkk7.com/luchunwei/aggbug/218918.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/luchunwei/" target="_blank">春天׃开</a> 2008-07-31 10:52 <a href="http://www.tkk7.com/luchunwei/archive/2008/07/31/218918.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>几个MIME相关有用资源http://www.tkk7.com/luchunwei/archive/2008/07/31/218889.html春天׃开春天׃开Thu, 31 Jul 2008 01:20:00 GMThttp://www.tkk7.com/luchunwei/archive/2008/07/31/218889.htmlhttp://www.tkk7.com/luchunwei/comments/218889.htmlhttp://www.tkk7.com/luchunwei/archive/2008/07/31/218889.html#Feedback0http://www.tkk7.com/luchunwei/comments/commentRss/218889.htmlhttp://www.tkk7.com/luchunwei/services/trackbacks/218889.html http://www.mhonarc.org/~ehood/MIME/
http://www.cppblog.com/javenstudio
MIME面面?/a>


春天׃开 2008-07-31 09:20 发表评论
]]>
微Y副总裁张亚勤:用hhttp://www.tkk7.com/luchunwei/archive/2007/03/15/103985.html春天׃开春天׃开Thu, 15 Mar 2007 03:49:00 GMThttp://www.tkk7.com/luchunwei/archive/2007/03/15/103985.htmlhttp://www.tkk7.com/luchunwei/comments/103985.htmlhttp://www.tkk7.com/luchunwei/archive/2007/03/15/103985.html#Feedback0http://www.tkk7.com/luchunwei/comments/commentRss/103985.htmlhttp://www.tkk7.com/luchunwei/services/trackbacks/103985.html  QQ在你的用h之道里,你比较看重的是什么?
  AQ诚信永q是W一位的Q然后是智慧、热情和团队_。我认ؓ人的素质有先天和后天两个斚w。我把前者定义ؓIQ’,IQ’由原始智商加冒险精组成。一个h有没有冒险精,敢不敢赌一把,敢不敢承担风险,q些都是先天的成分,不容易改变。先天的素质有点像操作系l,预装了就很难动了。而后天的素质我定义ؓEQ’,q是可以改变的,相当于应用Y件和用户界面?/div>
  q去׃工作关系Q我跟全球最尖?00个公司的CEO有不同程度接触,发现他们很不一P有的人热情、奔放,有的人内敛,甚至有点害羞Q有的h口才很好Q有的hl巴。但q些领袖有一些共性,W一是简化抽象问题的能力Q第二是信心Q这是后天培ȝQ如果你看这些h的眼睛,都透着自信Q尽他们可能说话很温和Q声调不高,语言不一定优,但是他们L有信늚Q第三是判断力,q完全可以通过后天学习培养Q好的领D很重要的能力在于判断,特别是没有充分的数据情况下,可以及时作出军_的能力。其实在理一个大公司Ӟ~的不是聪明的hQ重要的是用什么样的hQ缺的不是想法,有的时候有太多的想法,重要的是选择哪个xQ什么时候做判断Q做什么样的判断。另外一Ҏ心态很重要Q所有的优秀领袖都很坚韧Q他们每个h都不是一帆风的Q既有辉煌也有失落,但他们在p时也可以保持q_的心态,与外界表现出一U和谐。这在谈判、研发时都很重要?/div>
  QQ你不能容忍的品质是什么?

  AQ有三种人我不能容忍。一U是双面人,其中包括两面三刀的和老好人。后者ؓ了不得罪人,见不同h会说不同话,其实q样的h没有坏的动机Q但是会弱化大家的判断力Q而且大家对后者没有防备?/div>
  W二U是负面人,对Q何事情都不同意,其实q样的h自己也不一定有观点。h们可以有不同意的观点Q但一定要有徏设性,以正面的方式提出来。这Uh是具有传染性的Q一定要清除?/div>
  W三U是玩世不恭的hQ他们对M事情无所谓?/div>
  q三Uh能给Z可以量l机会,否则一定要清除。领导最重要的是扑ֈ对的人,但同样重要的是,能够清除不合适的人?br />

张亚勤个人档?br />
  1966q出生于p太原Q?2岁考入中国U技大学年班,23岁获得美国乔治·华盛顿大学甉|工程博士学位?/div>
  1999q回国参与创办微软亚z研IQ?004qʎ微Y总部负责Ud通信及嵌入式pȝ讑֤部门的Y件研发;2006q再ơ回国出d软中国研发集团总裁?/div>
  加盟微Y之前Q先后在国 Sarnoff 公司d媒体实验室ȝQ以及美国GTE 实验室Q高研究员?/div>


春天׃开 2007-03-15 11:49 发表评论
]]>汉字?/title><link>http://www.tkk7.com/luchunwei/archive/2007/01/25/96025.html</link><dc:creator>春天׃开</dc:creator><author>春天׃开</author><pubDate>Thu, 25 Jan 2007 11:59:00 GMT</pubDate><guid>http://www.tkk7.com/luchunwei/archive/2007/01/25/96025.html</guid><wfw:comment>http://www.tkk7.com/luchunwei/comments/96025.html</wfw:comment><comments>http://www.tkk7.com/luchunwei/archive/2007/01/25/96025.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/luchunwei/comments/commentRss/96025.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/luchunwei/services/trackbacks/96025.html</trackback:ping><description><![CDATA[汉字是汉语书写的最基本单元Q其使用最晚始于商代,历经甲骨文、大、小、隶书、楷书(草书、行书)诸般书体变化。秦始皇l一中国Q李斯整理小,“书同文”的历史从此开始。尽汉语方a发音差异很大Q但是书写系l的l一减少了方a差异造成的交障? <p class="cnt"><font size="3">  东汉许慎在《说文解字》中汉字构造规律概括ؓ“六书”:象Ş、指事、会意、Ş声、{注、假借。其中,象Ş、指事、会意、Ş声四ؓ造字原理Q是“造字法”;而{注、假借则为用字规律,是“用字法”?/font></p><p class="cnt"><font size="3">  三千余年来,汉字的书写方式变化不大,使得后h得以阅读古文而不生窒。但q代西方文明q入东亚之后Q整个汉字文化圈的各个国家纷Uh起了学习西方的思潮Q其中,攑ּ使用汉字是这动的一个重要方面。这些运动的立论以ؓQ跟西方拼音文字相比Q汉字是J琐W拙的。许多用汉字国家即q行了不同程度的汉字化,甚至q有完全拼音化的试。日文假名的拉丁转写Ҏ以及汉语多种拼音Ҏ的出现都是基于这U思想。中国大陆将汉字W划参考行书草书加以省Q于1956q??8日审订通过《简化字总表》,在中国及新加坡用至今。台湑ֈ一直用繁体中文?/font></p><p class="cnt"><font size="3">  目前在用汉语的地区Q大都用两U规范汉字,分别是繁体中文(J体字)和简体中文(体字Q?/font></p><div id="oa8gie8" class="cnt"><hr /></div><p class="cnt"><font size="3">  汉字Q是记录汉语的文字系l,q仍然或曄在日语和朝鲜语、越南语中用。汉字是世界上最古老的文字之一Q拥?500q以上的历史。狭义地_它是汉族的文字;q义地言Q它是汉字文化圈共同的文字?/font></p><p class="cnt"><font size="3">  汉字是承载文化的重要工具Q目前留有大量用汉字书写的典c。不同的方言都用汉字作为共同书写体p,因而汉字在历史上对中华文明的传播vC重要作用Qƈ成ؓ东南亚文化圈形成的内在纽带。在汉字发展q程中,留下了大量诗词、对联等文化Qƈ形成了独特的汉字书法艺术?/font></p><p class="cnt"><font size="3">  一个汉字一般具有多U含义,也具有很强的l词能力Q且很多汉字可独立成词。这D了汉字极高的“用效率”,2000左右常用字即可覆?8%以上的书面表达方式。加之汉字表意文字的Ҏ,汉字的阅L率很高。汉字具备比字母文字更高的信息密度,因此Q^均v来,同样内容的中文表达比其他M字母语言的文字都短?/font></p><p class="cnt"><font size="3">  目前的汉字体pd为繁体字和简体字Q前者用于台湾、香港、澳门和北美的华人圈中,后者用于中国大陆和新加坡以及东南亚的华人社区。通常说来Q两U汉字书写系l虽然有差异Q常用汉字的个体差异不到25Q?/font></p><p class="cnt"><font size="3">  ׃汉字书写复杂Q“汉字落后论”的说法存在了很长时_认ؓ汉字是教育及信息化瓶颈,q有“汉字拉丁化”甚臛_除汉字的推动行ؓ。现在一般认为汉字也有突Z点,初始学习隑ֺ虽大Q但掌握常用字后不存在类似v量英文单词的l箋学习问题Q且其表意特性也能充分调动h脑的学习能力。在计算入问题基本解军_Q“汉字落后论”及“汉字拉丁化”已实际上逐渐被大多数人抛弃?/font></p><p class="cnt"><font size="3">  目前汉字pȝ已经基本E_Q但汉字的规范化、生d的自然消亡仍在l进行?/font></p><h2 class="cnt">  关于汉字~码</h2><p class="cnt"><font size="3">  行信息交换,各汉字用地区都制订了一pd汉字字符集标准?/font></p><p class="cnt"><font size="3">  ?GB2313字符集,收入汉字6763个,W号715个,总计7478个字W,q是大陆普遍使用的简体字W集。楷?GB2313、仿?GB2313、华文行L市面上绝大多数字体支持显C个字W集Q亦是大多数输入法所采用的字W集。市面上l大多数所谓的J体字体Q其实采用的是GB-2313字符集简体字的编码,用字体显CZؓJ体字,而不是直接用GBK字符集中J体字的~码Q错误百出?/font></p><p class="cnt"><font size="3">  ?BIG-5字符集,收入13060个繁体汉字,808个符P总计13868个字W,目前普遍使用于台湾、香港等地区。台湾教育部标准宋体楷体{港台大多数字体支持q个字符集的昄?/font></p><p class="cnt"><font size="3">  ?GBK字符集,又称大字W集(GB=GuQBiāo国标QK=扩展)Q包含以上两U字W集汉字Q收?1003个汉字,882个符Pp21885个字W,包括了中日韩(CJK)l一汉字20902个、扩展A?CJK Ext-A) 中的汉字52个。Windows 95\98体中文版带有这个GBK.txt文g。宋体、隶书、黑体、幼圆、华文中宋、华文细黑、华文楷体、标楷体(DFKai-SB)、Arial Unicode MS、MingLiU、PMingLiU{字体支持显C个字W集。微软拼韌入法2003、全拹{光拼音等输入法,能够录入如镕镕炁夬喆嚞姤赟赟龑昳堃慜靕臹{GBKJ体汉字?/font></p><p class="cnt"><font size="3">  BIG-5 (J体中文)与GB-2313 (体中?Q编码不相兼容,字符在不同的操作pȝ中便产生q。文本文字的体与J体Q文字及~码Q之间的转换Q可用BabelPad、TextPro或Convertz之类的{码Y件来解决。若是程序,Windows XP操作pȝQ可用Microsoft AppLocale Utility 1.0解决QWindows 2000的操作系l,大概只有用:中文之星、四通利斏V南极星、金山快译之cȝ转码软g方能解决了?/font></p><p class="cnt"><font size="3">  ?GB18030字符集,包含GBK字符集、CJK Ext-A 全部6582个汉字,p27533个汉字。宋?18030、方正楷?FZKai-Z03)、书同文楷体(MS Song)宋体(ht_cjk+)、香港华h准宋?DFSongStd)、华康香港标准楷体、CERG Chinese Font、韩国New GulimQ以及微软Windows Vista操作pȝ提供的宋黑楷仿宋{字体亦支持q个字符集的昄。Windows 98支持q个字符集,以下的字W集则不支持。手写输入法逍遥W?.0版支持GB18030字符集及Ҏ大字符集汉字的录入?/font></p><p class="cnt"><font size="3">  ?Ҏ大字符集,包含GB18030字符集、CJK Ext-B中的36862个汉字,p64395个汉字。宋?Ҏ大字符集支持这个字W集的显C。Microsoft Office XP?003体中文版p带有q个字体。Windows 2000的操作系l需安装大字符集支持包“Surrogate更新”?/font></p><p class="cnt"><font size="3">  ?ISO/IEC 10646 / Unicode字符集,q是全球可以׃n的编码字W集Q两者相互兼融,늛了世界上主要语文的字W,其中包括J体汉字Q计有:CJKl一汉字20902个,CJK Ext-A 6582个,Ext-B 42711个,p70195个汉字。SimSun-ExtB(宋体)、MingLiU-ExtB(l明?能显C全部Ext-B汉字。至今尚无单独一Ƒ֭体能够显C全?0195个汉字,但可用vCW、新概念五笔、仓颉输入法世纪版、新版的微Y新注韟뀁仓颉输入法 6.0 ?单码功能){输入法录入。Ext-Cq有2万多个汉字。详情请参阅香港中文大学|站、马来西亚仓颉之友网站、福建陈清钰个h|站?/font></p><p class="cnt"><font size="3">  ?汉字构Ş数据?.3版,内含楷书字Ş60082个、小?1100个、楚pȝ帛文?627个、金?459个、甲骨文177个、异体字12768l。可以安装该E序Q亦可以解压后用其中的字体文gQ对于整理某些古代文献十分有用?/font></p><p class="cnt"><font size="3">  如果出了输入法所支持的字W集Q就不能录入计算机。如果没有相应字体的支持Q则昄为黑框、方框或I白。如果操作系l或应用软g不支持该字符集,则显CZؓ问号(一个或两个)。在|页上亦存在同样的情c?/font></p><h2 class="cnt">  关于Unicode</h2><p class="cnt"><font size="3">  ׃各国国家标准字集所收的汉字字数、常用字的差异,虽然象中国两岸GB/BIG5字集常用字基本类|转换后阅dƈ不成问题Q但是这U编码{换的混ؕ关系Q对文字交流始终是一U障。因此相兛_家的标准化组l和文字工作者经q共同努力,l于?3q完成了包含中日?CJK)汉字的Unicode 汉字标准ISO 10646.1?Unicode是完全双字节表示的多国文字编码体p,~码I间0x0000-0xFFFF?ISO 10646.1汉字标准使用~码0x4E00-9FA5Q共包含20902个汉字。其中:大陆(S)提出的汉?7124个,台湾(T)提出的汉?7258? S与T的ƈ集,即中?C)提出的汉字ؓ20158个。日?J)提出的汉字ؓ12157个,中国未提出的690?Ja); 韩国(K)提出的汉字ؓ7477个,其中中国未提出的90?Ka); Ja与Kaq?44字?支持Unicode~码的相关电脑系lYӞ如Unix, Win95已有推出Q但是由于Unicode的ASCII码是用双字节~码(即一般电脑系l中的单字节ASCII码前?0x00)Q同时其汉字~码与各国的现有~码也不兼容Q造成现有的Y件和数据不能直接使用Q所以目前完全用Unicode软gpȝ的用户ƈ不多Q大多数只将它此作ؓ一个国际语a~码标准来用?/font></p><img src ="http://www.tkk7.com/luchunwei/aggbug/96025.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/luchunwei/" target="_blank">春天׃开</a> 2007-01-25 19:59 <a href="http://www.tkk7.com/luchunwei/archive/2007/01/25/96025.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[原创]javascript装的Tabc-附源?/title><link>http://www.tkk7.com/luchunwei/archive/2006/10/17/75519.html</link><dc:creator>春天׃开</dc:creator><author>春天׃开</author><pubDate>Tue, 17 Oct 2006 01:16:00 GMT</pubDate><guid>http://www.tkk7.com/luchunwei/archive/2006/10/17/75519.html</guid><wfw:comment>http://www.tkk7.com/luchunwei/comments/75519.html</wfw:comment><comments>http://www.tkk7.com/luchunwei/archive/2006/10/17/75519.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.tkk7.com/luchunwei/comments/commentRss/75519.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/luchunwei/services/trackbacks/75519.html</trackback:ping><description><![CDATA[ <p>Web UI中常常用到TabQ每ơ写一堆HTML+css有点烦了Q于是花了点旉整理了这个classQ留备后用?br />Z方便我引入了prototype 1.4Q省掉一串键盘敲凅R?br />cLQ?a >www.live.com</a>的Tab page<br />用法Q?br />//首先载入: 'tab.js','prototype.js' and 'tab.css' in HTML page<br />//   mytab1=new Tab('tab1',top,left,width,height);//创徏新Tab<br />//   mytab1.addItem(name,contentid,type);//dTabItem<br />//   mytab1.delItem(name);//删除TabItem<br />//   当然一般情况下操作鼠标卛_完成d/删去工作.<br />//   点击TabItem时动态调?<li>标签rev属性指定的Ҏ(要不要ajax随你喜Ƣ了)<br />例子Q?br /><br /><img alt="o_LuTab.png" src="http://www.tkk7.com/images/blogjava_net/luchunwei/16358/r_LuTab.png" border="0" /><br /><font color="#0000ff"><html><br /><head><br /></font><span style="COLOR: #0033ff"><script </span>src=<font color="#008000">'prototype.js'</font><span style="COLOR: #0000ff">></script></span><br /><span style="COLOR: #0000ff"><script</span> src=<font color="#008000">'tab.js'</font>><span style="COLOR: #0000ff"></script><br /><link </span>rel=stylesheet type="text/css" href=<font color="#008000">'tab.css'</font><span style="COLOR: #0000ff">/></span><br /><font color="#0000ff"></head><br /><body><br /><script><!--<br /></font>//Test case<br />tab1=new Tab("tab1",100,10,600,300);<br />tab2=new Tab("tab2",180,60,600,300);<br />tab3=new Tab("tab3",260,110,600,300);</p> <p>tab1.addItem('hello','id','CONTENT');<br />tab1.delItem('t2');<br />tab1.addItem();tab1.addItem();</p> <p>tab2.addItem('hi','id','CONTENT');<br />tab2.addItem();tab2.addItem();</p> <p>tab1.display();<br />tab2.display();<br />tab3.display();</p> <p> <font color="#0000ff">--></script><br /></body><br /></html></font> <br /> <a href="/Files/luchunwei/LuTab.rar">下蝲Tab.rar</a> </p> <img src ="http://www.tkk7.com/luchunwei/aggbug/75519.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/luchunwei/" target="_blank">春天׃开</a> 2006-10-17 09:16 <a href="http://www.tkk7.com/luchunwei/archive/2006/10/17/75519.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript vml 装?D饼图http://www.tkk7.com/luchunwei/archive/2006/08/18/64364.html春天׃开春天׃开Fri, 18 Aug 2006 07:40:00 GMThttp://www.tkk7.com/luchunwei/archive/2006/08/18/64364.htmlhttp://www.tkk7.com/luchunwei/comments/64364.htmlhttp://www.tkk7.com/luchunwei/archive/2006/08/18/64364.html#Feedback11http://www.tkk7.com/luchunwei/comments/commentRss/64364.htmlhttp://www.tkk7.com/luchunwei/services/trackbacks/64364.html做的最主要的事情是把vml用javascript装成Pie3Dc,方便重用?br />Snap1.png

Pie3D.js代码太长Q我已打包,需要的话自行下载?a href="/Files/luchunwei/3DPie.rar">javascript vml 装?D饼图

<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office"> 
<head>        
<!-- 样式表?->
<STYLE>
v\:* {Behavior: url(#default#VML) }
o\:* {behavior: url(#default#VML) }
body{font-family:arial}
</STYLE>
<title>3D Pie</title>
<script src=Pie3D.js ></script>
</head>
<body>
<div id='pieChart'></div>
<script>
xxColor=new Array("#ccc","#b5cc88","#6B8E23","#3CB371","#f59d56","yellow","#d8d8d8","#708090","#4682B4","red","#ffc20e");
//参数('容器div的id',宽度,高度,'图表标题')
var
 pie=new Pie3D('pieChart',320,192,'TEST 3D PIE');
//试数据Q数据格?"目名称",?"颜色")
//此处可结合AjaxQ取得数据后动态更?/font>
for(var i=0;i<10;i++){
dcake=new Array("cake"+i,Math.random()*10,xxColor[i]);
pie.Cakes[i]=dcake;
//赋?br />}
pie.draw();//d
</script>
</body></html>



春天׃开 2006-08-18 15:40 发表评论
]]>
Virtual Fab(虚拟工厂)http://www.tkk7.com/luchunwei/archive/2006/08/15/Virtual_Fab.html春天׃开春天׃开Tue, 15 Aug 2006 04:07:00 GMThttp://www.tkk7.com/luchunwei/archive/2006/08/15/Virtual_Fab.htmlhttp://www.tkk7.com/luchunwei/comments/63648.htmlhttp://www.tkk7.com/luchunwei/archive/2006/08/15/Virtual_Fab.html#Feedback0http://www.tkk7.com/luchunwei/comments/commentRss/63648.htmlhttp://www.tkk7.com/luchunwei/services/trackbacks/63648.html

春天׃开 2006-08-15 12:07 发表评论
]]>
LuEmail 客户?服务器代码全部开?/title><link>http://www.tkk7.com/luchunwei/archive/2006/07/19/59041.html</link><dc:creator>春天׃开</dc:creator><author>春天׃开</author><pubDate>Wed, 19 Jul 2006 09:39:00 GMT</pubDate><guid>http://www.tkk7.com/luchunwei/archive/2006/07/19/59041.html</guid><wfw:comment>http://www.tkk7.com/luchunwei/comments/59041.html</wfw:comment><comments>http://www.tkk7.com/luchunwei/archive/2006/07/19/59041.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.tkk7.com/luchunwei/comments/commentRss/59041.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/luchunwei/services/trackbacks/59041.html</trackback:ping><description><![CDATA[因ؓ旉的原因我无法再花大量的精力在LuEmail的后l开发上Q所以决定把客户?服务器代码全部开放,希望有兴的朋友可以帮忙l箋下去。当Ӟ也希望这个project的一些片D能为初学者带来启发?br /><font color="#006400">我没有把js和css分出来,d1500行左叻I攑֜一h较方便查找?<br />M来说W一部分cssQ格式)Q第二部分jsQ功能)Q第三部分htmlQ页面)?/font><br /><br />补充Q?/20 8:15 补充q用到的所有图表+自动完成jsQ邮件编辑器js<br /><a href="/Files/luchunwei/Mail.rar">LuEmail 客户端代?/a><br /><a href="/Files/luchunwei/LuEmailSrc.rar">LuEmail 服务器代?/a><br /><img src ="http://www.tkk7.com/luchunwei/aggbug/59041.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/luchunwei/" target="_blank">春天׃开</a> 2006-07-19 17:39 <a href="http://www.tkk7.com/luchunwei/archive/2006/07/19/59041.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript 滑动框架的制?/title><link>http://www.tkk7.com/luchunwei/archive/2006/07/07/57189.html</link><dc:creator>春天׃开</dc:creator><author>春天׃开</author><pubDate>Fri, 07 Jul 2006 13:20:00 GMT</pubDate><guid>http://www.tkk7.com/luchunwei/archive/2006/07/07/57189.html</guid><wfw:comment>http://www.tkk7.com/luchunwei/comments/57189.html</wfw:comment><comments>http://www.tkk7.com/luchunwei/archive/2006/07/07/57189.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/luchunwei/comments/commentRss/57189.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/luchunwei/services/trackbacks/57189.html</trackback:ping><description><![CDATA[ <p> <img src="http://blog.matrix.org.cn/resources/hncwx/iframe.gif" /> </p> <div id="e44aqy4" class="codeRoot"> <p> </p> <p> <font color="blue">function</font> <font color="#ff8000"> </font> drag(o,r){</p> <div id="icgaiq4" class="indent"> <p> <span id="coaqka8" class="comments"> <font color="#009090">//o.firstChild.onmousedown=function(){return false;};</font> </span> </p> <p>o.<font color="#ff8000">onmousedown</font>=<font color="blue">function</font><font color="#ff8000"></font>(a){</p> <div id="wi48we4" class="indent"> <p> <font color="blue">var</font> <font color="#ff8000"> </font> d=document;</p> <p> <font color="blue">if</font> <font color="#ff8000"> </font>(!a)a=<font color="#ff8000">window</font>.event;</p> <p>o.<font color="#ff8000">style</font>.backgroundColor="<span id="6w4ei4k" class="quote"><font color="#999999">#0066ff</font></span>" </p> <p> <font color="blue">var</font> <font color="#ff8000"> </font> <font color="#ff8000">x</font>=a.<font color="#ff8000">layerX</font>?a.<font color="#ff8000">layerX</font>:a.<font color="#ff8000">offsetX</font>,<font color="#ff8000">y</font>=a.<font color="#ff8000">layerY</font>?a.<font color="#ff8000">layerY</font>:a.offsetY;</p> <p> </p> <p> <span id="4c4wasu" class="comments"> <font color="#009090">//-------------for resize</font> </span> </p> <p> <font color="blue">var</font> <font color="#ff8000"> </font> leftdiv=<font color="#ff8000">document</font>.getElementById("<span id="8aq88gw" class="quote"><font color="#999999">leftregion</font></span>");</p> <p> <font color="blue">var</font> <font color="#ff8000"> </font> leftdivwidth=<font color="#ff8000">parseInt</font>(leftdiv.<font color="#ff8000">style</font>.<font color="#ff8000">width</font>);</p> <p> <span id="4m4oake" class="comments"> <font color="#009090">//leftdiv.innerHTML+="width:"+leftdivwidth+"<br>"</font> </span> </p> <p> <font color="blue">var</font> <font color="#ff8000"> </font> rightdiv=<font color="#ff8000">document</font>.getElementById("<span id="44o4mme" class="quote"><font color="#999999">rightregion</font></span>");</p> <p> </p> <p> <font color="blue">var</font> <font color="#ff8000"> </font> rightdivwidth=<font color="#ff8000">parseInt</font>(rightdiv.<font color="#ff8000">style</font>.<font color="#ff8000">width</font>);</p> <p> <font color="blue">var</font> <font color="#ff8000"> </font> xx=a.<font color="#ff8000">pageX</font>?a.<font color="#ff8000">pageX</font>:a.<font color="#ff8000">clientX</font>,yy=a.<font color="#ff8000">pageY</font>?a.lpageY:a.clientY;</p> <p> <font color="blue">var</font> <font color="#ff8000"> </font> oleft=<font color="#ff8000">parseInt</font>(o.<font color="#ff8000">style</font>.<font color="#ff8000">left</font>)<span id="y8k44uk" class="comments"><font color="#009090">//xx-x;</font></span></p> <p> <font color="blue">var</font> <font color="#ff8000"> </font> rightdivleft=<font color="#ff8000">parseInt</font>(rightdiv.<font color="#ff8000">style</font>.<font color="#ff8000">left</font>);</p> <p> </p> <p> <span id="48ouum8" class="comments"> <font color="#009090">//leftdiv.innerHTML+=o.style.width;//only for tracing</font> </span> </p> <p> <font color="blue">if</font> <font color="#ff8000"> </font>(o.setCapture) </p> <p>o.setCapture();</p> <p> <font color="blue">else</font> <font color="#ff8000"> </font> <font color="blue">if</font><font color="#ff8000"></font>(<font color="#ff8000">window</font>.<font color="#ff8000">captureEvents</font>) </p> <p> <font color="#ff8000">window</font>.<font color="#ff8000">captureEvents</font>(<font color="red">Event</font><font color="#ff8000"></font>.MOUSEMOVE|<font color="red">Event</font><font color="#ff8000"></font>.MOUSEUP);</p> <p>d.<font color="#ff8000">onmousemove</font>=<font color="blue">function</font><font color="#ff8000"></font>(a){</p> <div id="k4m444q" class="indent"> <p> </p> <p> <font color="blue">if</font> <font color="#ff8000"> </font>(!a)a=<font color="#ff8000">window</font>.event;</p> <p> <font color="blue">if</font> <font color="#ff8000"> </font>(!a.<font color="#ff8000">pageX</font>)a.<font color="#ff8000">pageX</font>=a.clientX;</p> <p> <font color="blue">if</font> <font color="#ff8000"> </font>(!a.<font color="#ff8000">pageY</font>)a.<font color="#ff8000">pageY</font>=a.clientY;</p> <p> <span id="kc4s84a" class="comments"> <font color="#009090">//clientX: distance between explorer and mouse point</font> </span> </p> <p> <font color="blue">var</font> <font color="#ff8000"> </font> tx=a.<font color="#ff8000">pageX</font>-<font color="#ff8000">x</font>,ty=a.<font color="#ff8000">pageY</font>-y;</p> <p> <span id="auysewi" class="comments"> <font color="#009090">//------------for resize</font> </span> </p> <p> <font color="blue">var</font> <font color="#ff8000"> </font> txx=a.<font color="#ff8000">pageX</font>-xx,tyy=a.<font color="#ff8000">pageY</font>-yy </p> <p>o.<font color="#ff8000">style</font>.<font color="#ff8000">left</font>=tx<r[0]?r[0]:tx>r[1]?r[1]:tx;</p> <p> <span id="44yoac4" class="comments"> <font color="#009090">//o.style.top=ty<r[2]?r[2]:ty>r[3]?r[3]:ty;</font> </span> </p> <p>move_x=<font color="#ff8000">parseInt</font>(o.<font color="#ff8000">style</font>.<font color="#ff8000">left</font>)-oleft;</p> <p> <span id="wi4kw44" class="comments"> <font color="#009090">//move_y=otop-o.style.top</font> </span> </p> <p> <span id="4goaw4m" class="comments"> <font color="#009090">//leftdiv.innerHTML+="width:"+leftdiv.style.width+" move:"+move_x+"<br>"</font> </span> </p> <p> <span id="444g864" class="comments"> <font color="#009090">//rightdiv.innerHTML+="o left:"+o.style.left+" move:"+move_x+"<br>"</font> </span> </p> <p>leftdiv.<font color="#ff8000">style</font>.<font color="#ff8000">width</font>=(leftdivwidth+move_x)+"<span id="oau4cc4" class="quote"><font color="#999999">px</font></span>" </p> <p>rightdiv.<font color="#ff8000">style</font>.<font color="#ff8000">width</font>=(rightdivwidth-move_x)+"<span id="um8w4gq" class="quote"><font color="#999999">px</font></span>" </p> <p>rightdiv.<font color="#ff8000">style</font>.<font color="#ff8000">left</font>=(rightdivleft+move_x)+"<span id="4e4ws6w" class="quote"><font color="#999999">px</font></span>" </p> <p> </p> </div> <p>} ;</p> <p>d.<font color="#ff8000">onmouseup</font>=<font color="blue">function</font><font color="#ff8000"></font>(){</p> <div id="acg886e" class="indent"> <p>o.<font color="#ff8000">style</font>.backgroundColor="<span id="swycgoa" class="quote"><font color="#999999">#FFFFFF</font></span>" </p> <p> <font color="blue">if</font> <font color="#ff8000"> </font>(o.releaseCapture) </p> <p>o.releaseCapture();</p> <p> <font color="blue">else</font> <font color="#ff8000"> </font> <font color="blue">if</font><font color="#ff8000"></font>(<font color="#ff8000">window</font>.<font color="#ff8000">captureEvents</font>) </p> <p> <font color="#ff8000">window</font>.<font color="#ff8000">captureEvents</font>(<font color="red">Event</font><font color="#ff8000"></font>.MOUSEMOVE|<font color="red">Event</font><font color="#ff8000"></font>.MOUSEUP);</p> <p>d.<font color="#ff8000">onmousemove</font>=null;</p> <p> </p> <p>d.<font color="#ff8000">onmouseup</font>=null;</p> <p> </p> </div> <p>} ;</p> <p> </p> </div> <p>} ;</p> <p> </p> </div> <p>} </p> <p> </p> </div> <a title="Permanent Link: javascript 滑动框架的制? rel="bookmark"> <font color="#676e04"> </font> </a> <img src ="http://www.tkk7.com/luchunwei/aggbug/57189.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/luchunwei/" target="_blank">春天׃开</a> 2006-07-07 21:20 <a href="http://www.tkk7.com/luchunwei/archive/2006/07/07/57189.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Servlet获取Ajax POST数据q的一U解?/title><link>http://www.tkk7.com/luchunwei/archive/2006/07/07/57188.html</link><dc:creator>春天׃开</dc:creator><author>春天׃开</author><pubDate>Fri, 07 Jul 2006 13:17:00 GMT</pubDate><guid>http://www.tkk7.com/luchunwei/archive/2006/07/07/57188.html</guid><wfw:comment>http://www.tkk7.com/luchunwei/comments/57188.html</wfw:comment><comments>http://www.tkk7.com/luchunwei/archive/2006/07/07/57188.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/luchunwei/comments/commentRss/57188.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/luchunwei/services/trackbacks/57188.html</trackback:ping><description><![CDATA[ <p>1. 对中文参数编码encodeURI(chinesePara);<br />  poststr = "username="+<span id="google-navclient-hilite" style="COLOR: black; BACKGROUND-COLOR: yellow">encodeURI</span>("中文");</p> <p>2.服务器端获取参数后解?/p> <p>String username = <font style="BACKGROUND-COLOR: #ffff33">new String(</font>request.getParameter("username").<font style="BACKGROUND-COLOR: #ffff33">getBytes("ISO-8859-1"),"UTF8");  </font></p> <p>  -----------------------------------------------------------</p> <p>  http_request.open("POST", url, true);<br />  http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");<br />  http_request.send(poststr);</p> <p>---------------------------------------------------------------</p> <!-- <p class="post-info"> <?php wp_link_pages(); ?> </p>--> <!-- <?php trackback_rdf(); ?> --> <img src ="http://www.tkk7.com/luchunwei/aggbug/57188.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/luchunwei/" target="_blank">春天׃开</a> 2006-07-07 21:17 <a href="http://www.tkk7.com/luchunwei/archive/2006/07/07/57188.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>LuEmailȝ面构?/title><link>http://www.tkk7.com/luchunwei/archive/2006/07/07/57070.html</link><dc:creator>春天׃开</dc:creator><author>春天׃开</author><pubDate>Fri, 07 Jul 2006 01:12:00 GMT</pubDate><guid>http://www.tkk7.com/luchunwei/archive/2006/07/07/57070.html</guid><wfw:comment>http://www.tkk7.com/luchunwei/comments/57070.html</wfw:comment><comments>http://www.tkk7.com/luchunwei/archive/2006/07/07/57070.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.tkk7.com/luchunwei/comments/commentRss/57070.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/luchunwei/services/trackbacks/57070.html</trackback:ping><description><![CDATA[文字我就不多说了Q大家看图~<br /><br /><img height="502" alt="ReadStructure.PNG" src="http://www.tkk7.com/images/blogjava_net/luchunwei/ReadStructure.PNG" width="666" border="0" /><br /><br /><img height="500" alt="WriteStructure.PNG" src="http://www.tkk7.com/images/blogjava_net/luchunwei/WriteStructure.PNG" width="666" border="0" /><br /><img src ="http://www.tkk7.com/luchunwei/aggbug/57070.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/luchunwei/" target="_blank">春天׃开</a> 2006-07-07 09:12 <a href="http://www.tkk7.com/luchunwei/archive/2006/07/07/57070.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>LuEmail 我想做的更好http://www.tkk7.com/luchunwei/archive/2006/07/07/57063.html春天׃开春天׃开Fri, 07 Jul 2006 00:27:00 GMThttp://www.tkk7.com/luchunwei/archive/2006/07/07/57063.htmlhttp://www.tkk7.com/luchunwei/comments/57063.htmlhttp://www.tkk7.com/luchunwei/archive/2006/07/07/57063.html#Feedback10http://www.tkk7.com/luchunwei/comments/commentRss/57063.htmlhttp://www.tkk7.com/luchunwei/services/trackbacks/57063.html

ZWeb的邮件客LQ后端邮件服务器暂时只测试了Open WebMail

HTML+javascript+Ajax+Servlet+Javamail+Tomcat

面构架上采用CSS布局?br />

  • 标记功能可以让您方便为每一邮件添加提?
  • 双击邮g阅读区域卛_切换视图Q让您立L有开阔的视野
  • 通过阅读H格使您无需d收g,卛_快速查看邮件内?
  • 单击右键Q轻村֛复,删除及{?
  • 支持直接插入本地囄Q无d手动上传再Copy Url
  • 实时搜烦Q输入不过3个字母即可找到您要的邮gQ主题、收件hQ?/span>
  • 自动补全Q写信时不必记忆长窜的Email地址Main.PNG


  • 春天׃开 2006-07-07 08:27 发表评论
    ]]>
    javamaild完整的邮?/title><link>http://www.tkk7.com/luchunwei/archive/2006/07/02/56128.html</link><dc:creator>春天׃开</dc:creator><author>春天׃开</author><pubDate>Sun, 02 Jul 2006 00:17:00 GMT</pubDate><guid>http://www.tkk7.com/luchunwei/archive/2006/07/02/56128.html</guid><wfw:comment>http://www.tkk7.com/luchunwei/comments/56128.html</wfw:comment><comments>http://www.tkk7.com/luchunwei/archive/2006/07/02/56128.html#Feedback</comments><slash:comments>14</slash:comments><wfw:commentRss>http://www.tkk7.com/luchunwei/comments/commentRss/56128.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/luchunwei/services/trackbacks/56128.html</trackback:ping><description><![CDATA[Javamail API虽然功能装的比较完_但是要写一个能正确昄复杂邮g的程序还有很多逻辑和细节要处理。下面是我最q做一个webmail时整理的ServletQ基本上可以正确的读取text,HTML,HTML中显C图片及附g。在本servlet中也单处理了常见的中文问题,包括主题、附件、HTML囄中文、email Address中文。M感觉有两个难点:1、附件和|页囄的抓取,需要定位数节点nodeidQ光用partid是不行的Q?、中文分两种情况Base64和客L服务器端~码不一致。本E序中实C3UdisplayPart()的方法,具体情况不同l合使用效率更高。本E序q有一个未处理的地方就是我在做nodeid的时候最多算10个。当然还有其他问题欢q指正,来出是ؓ了给后来的初学者作个参考例子,走弯\? <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #008080; ">  1</span> <span style="color: #0000FF; ">import</span>  java.io.IOException;<br /> <span style="color: #008080; ">  2</span> <span style="color: #0000FF; ">import</span>  java.io.InputStream;<br /> <span style="color: #008080; ">  3</span> <span style="color: #0000FF; ">import</span>  java.io.UnsupportedEncodingException;<br /> <span style="color: #008080; ">  4</span> <span style="color: #0000FF; ">import</span>  java.util.HashMap;<br /> <span style="color: #008080; ">  5</span> <span style="color: #0000FF; ">import</span>  javax.mail.Folder;<br /> <span style="color: #008080; ">  6</span> <span style="color: #0000FF; ">import</span>  javax.mail.Message;<br /> <span style="color: #008080; ">  7</span> <span style="color: #0000FF; ">import</span>  javax.mail.MessagingException;<br /> <span style="color: #008080; ">  8</span> <span style="color: #0000FF; ">import</span>  javax.mail.Multipart;<br /> <span style="color: #008080; ">  9</span> <span style="color: #0000FF; ">import</span>  javax.mail.Part;<br /> <span style="color: #008080; "> 10</span> <span style="color: #0000FF; ">import</span>  javax.mail.Store;<br /> <span style="color: #008080; "> 11</span> <span style="color: #0000FF; ">import</span>  javax.mail.internet.InternetAddress;<br /> <span style="color: #008080; "> 12</span> <span style="color: #0000FF; ">import</span>  javax.mail.internet.MimeUtility;<br /> <span style="color: #008080; "> 13</span> <span style="color: #0000FF; ">import</span>  javax.servlet.ServletException;<br /> <span style="color: #008080; "> 14</span> <span style="color: #0000FF; ">import</span>  javax.servlet.ServletOutputStream;<br /> <span style="color: #008080; "> 15</span> <span style="color: #0000FF; ">import</span>  javax.servlet.http.HttpServletRequest;<br /> <span style="color: #008080; "> 16</span> <span style="color: #0000FF; ">import</span>  javax.servlet.http.HttpServletResponse;<br /> <span style="color: #008080; "> 17</span> <span style="color: #0000FF; ">import</span>  javax.servlet.http.HttpSession;<br /> <span style="color: #008080; "> 18</span> <span style="color: #0000FF; ">import</span>  chunwei.mail.Login;<br /> <span style="color: #008080; "> 19</span> <span style="color: #0000FF; ">import</span>  chunwei.mail.MailUserData;<br /> <span style="color: #008080; "> 20</span> <span style="color: #008000; ">/**</span><span style="color: #008000; "><br /> </span><span style="color: #008080; "> 21</span> <span style="color: #008000; ">* Servlet implementation class for Servlet: MailServlet<br /> </span><span style="color: #008080; "> 22</span> <span style="color: #008000; ">* Author: luchunwei  Email: luchunwei@gmail.com<br /> </span><span style="color: #008080; "> 23</span> <span style="color: #008000; "></span><span style="color: #008000; ">*/</span><br /> <span style="color: #008080; "> 24</span> <span style="color: #0000FF; ">public</span>  <span style="color: #0000FF; ">class</span> MailNode <span style="color: #0000FF; ">extends</span> javax.servlet.http.HttpServlet <span style="color: #0000FF; ">implements</span> javax.servlet.Servlet {<br /> <span style="color: #008080; "> 25</span> <span style="color: #0000FF; ">private</span>  <span style="color: #0000FF; ">static</span> <span style="color: #0000FF; ">final</span> <span style="color: #0000FF; ">long</span> serialVersionUID = 1L;<br /> <span style="color: #008080; "> 26</span> <span style="color: #0000FF; ">protected</span>  <span style="color: #0000FF; ">void</span> doGet(HttpServletRequest request, HttpServletResponse response) <span style="color: #0000FF; ">throws</span> ServletException, IOException {<br /> <span style="color: #008080; "> 27</span> nodeid="";<br /> <span style="color: #008080; "> 28</span> node="0";<br /> <span style="color: #008080; "> 29</span> currentnodeid=0;<br /> <span style="color: #008080; "> 30</span> url=request.getRequestURL().toString();<br /> <span style="color: #008080; "> 31</span> HttpSession ses=request.getSession();<br /> <span style="color: #008080; "> 32</span> MailUserData mud=(MailUserData)ses.getAttribute("mud");<br /> <span style="color: #008080; "> 33</span> ServletOutputStream out=response.getOutputStream();<br /> <span style="color: #008080; "> 34</span> response.setContentType("text/html;charset=GB2312");<br /> <span style="color: #008080; "> 35</span> <span style="color: #0000FF; ">int</span>  msgid=-1,partid=-1;<span style="color: #008000; ">//</span><span style="color: #008000; ">msgdiQ邮件编PpartidQMultiPart Message中part的编受?/span><span style="color: #008000; "><br /> </span><span style="color: #008080; "> 36</span> <span style="color: #008000; "></span>String  partname=<span style="color: #0000FF; ">null</span>; <span style="color: #008000; ">//</span><span style="color: #008000; ">囄或附件的文g?/span><span style="color: #008000; "><br /> </span><span style="color: #008080; "> 37</span> <span style="color: #008000; "></span>String  nodepara=<span style="color: #0000FF; ">null</span>;<span style="color: #008000; ">//</span><span style="color: #008000; ">节点~号Q如1-2-1-0, 他以便层层剥?/span><span style="color: #008000; "><br /> </span><span style="color: #008080; "> 38</span> <span style="color: #008000; "></span><span style="color: #0000FF; ">if</span> (request.getParameter("msgid")!=<span style="color: #0000FF; ">null</span>)<br /> <span style="color: #008080; "> 39</span> msgid=Integer.parseInt(request.getParameter("msgid"));<br /> <span style="color: #008080; "> 40</span> msgidStr="msgid="+msgid;<br /> <span style="color: #008080; "> 41</span> <span style="color: #0000FF; ">if</span> (request.getParameter("partid")!=<span style="color: #0000FF; ">null</span>)<br /> <span style="color: #008080; "> 42</span> partid=Integer.parseInt(request.getParameter("partid"));<br /> <span style="color: #008080; "> 43</span> <span style="color: #0000FF; ">if</span> (request.getParameter("partname")!=<span style="color: #0000FF; ">null</span>)<br /> <span style="color: #008080; "> 44</span> partname=<span style="color: #0000FF; ">new</span> String(request.getParameter("partname").getBytes("ISO-8859-1"),"GB2312");<br /> <span style="color: #008080; "> 45</span> <span style="color: #0000FF; ">if</span> (request.getParameter("node")!=<span style="color: #0000FF; ">null</span>)<br /> <span style="color: #008080; "> 46</span> nodepara=request.getParameter("node");<br /> <span style="color: #008080; "> 47</span> System.out.println(nodepara);<br /> <span style="color: #008080; "> 48</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">System.out.println(msgid+":"+partid+":"+partname);</span><span style="color: #008000; "><br /> </span><span style="color: #008080; "> 49</span> <span style="color: #008000; "></span><span style="color: #0000FF; ">if</span> (partname!=<span style="color: #0000FF; ">null</span>){<br /> <span style="color: #008080; "> 50</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">displayImages</span><span style="color: #008000; "><br /> </span><span style="color: #008080; "> 51</span> <span style="color: #008000; "></span><span style="color: #0000FF; ">try</span>  {<br /> <span style="color: #008080; "> 52</span> displayPart(partname,response,out);<br /> <span style="color: #008080; "> 53</span> }  <span style="color: #0000FF; ">catch</span> (MessagingException e) {<br /> <span style="color: #008080; "> 54</span> e.printStackTrace();<br /> <span style="color: #008080; "> 55</span> }  <span style="color: #0000FF; ">catch</span> (IOException e) {<br /> <span style="color: #008080; "> 56</span> e.printStackTrace();<br /> <span style="color: #008080; "> 57</span> }<br /> <span style="color: #008080; "> 58</span> <span style="color: #0000FF; ">return</span>;<br /> <span style="color: #008080; "> 59</span> }<br /> <span style="color: #008080; "> 60</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">--------------------------</span><span style="color: #008000; "><br /> </span><span style="color: #008080; "> 61</span> <span style="color: #008000; "></span><span style="color: #0000FF; ">if</span> (mud==<span style="color: #0000FF; ">null</span>){<br /> <span style="color: #008080; "> 62</span> Login login=<span style="color: #0000FF; ">new</span> Login("imap","mail.server.com",-1,"user","password");<br /> <span style="color: #008080; "> 63</span> login.login();<br /> <span style="color: #008080; "> 64</span> <span style="color: #0000FF; ">if</span> (login.getResult()==1){<br /> <span style="color: #008080; "> 65</span> HttpSession session = request.getSession();<br /> <span style="color: #008080; "> 66</span> session.setMaxInactiveInterval(3600);<br /> <span style="color: #008080; "> 67</span> session.setAttribute("mud",login.getMud());<br /> <span style="color: #008080; "> 68</span> }<br /> <span style="color: #008080; "> 69</span> mud=(MailUserData)ses.getAttribute("mud");<br /> <span style="color: #008080; "> 70</span> }<br /> <span style="color: #008080; "> 71</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">---------------------------</span><span style="color: #008000; "><br /> </span><span style="color: #008080; "> 72</span> <span style="color: #008000; "></span><span style="color: #0000FF; ">if</span> (mud==<span style="color: #0000FF; ">null</span>){<br /> <span style="color: #008080; "> 73</span> out.print("<error>Login First(No Session)</error>");<br /> <span style="color: #008080; "> 74</span> } <span style="color: #0000FF; ">else</span>{<br /> <span style="color: #008080; "> 75</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">Folder folder=mud.getFolder();</span><span style="color: #008000; "><br /> </span><span style="color: #008080; "> 76</span> <span style="color: #008000; "></span><span style="color: #0000FF; ">try</span>  {<br /> <span style="color: #008080; "> 77</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">------------------------</span><span style="color: #008000; "><br /> </span><span style="color: #008080; "> 78</span> <span style="color: #008000; "></span>Store store=mud.getStore();<br /> <span style="color: #008080; "> 79</span> Folder  folder=store.getFolder("INBOX");<br /> <span style="color: #008080; "> 80</span> folder.open(Folder.READ_ONLY);<br /> <span style="color: #008080; "> 81</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">------------------------</span><span style="color: #008000; "><br /> </span><span style="color: #008080; "> 82</span> <span style="color: #008000; "></span>Message m=folder.getMessage(msgid);<br /> <span style="color: #008080; "> 83</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">if(partid==-1){</span><span style="color: #008000; "><br /> </span><span style="color: #008080; "> 84</span> <span style="color: #008000; "></span><span style="color: #0000FF; ">if</span> (nodepara==<span style="color: #0000FF; ">null</span>){<br /> <span style="color: #008080; "> 85</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">if(!imgs.isEmpty())imgs.clear();</span><span style="color: #008000; "><br /> </span><span style="color: #008080; "> 86</span> <span style="color: #008000; "></span>messageHtml="";<br /> <span style="color: #008080; "> 87</span> attachment="";<br /> <span style="color: #008080; "> 88</span> recipients=getAllgetRecipients(m);<br /> <span style="color: #008080; "> 89</span> out.print(displayMessage(request,m,partid));<br /> <span style="color: #008080; "> 90</span> } <span style="color: #0000FF; ">else</span>{<br /> <span style="color: #008080; "> 91</span> displayPart(m,nodepara,response,out);<br /> <span style="color: #008080; "> 92</span> }<br /> <span style="color: #008080; "> 93</span> }  <span style="color: #0000FF; ">catch</span> (MessagingException e) {<br /> <span style="color: #008080; "> 94</span> e.printStackTrace();<br /> <span style="color: #008080; "> 95</span> }  <span style="color: #0000FF; ">catch</span> (IOException e) {<br /> <span style="color: #008080; "> 96</span> e.printStackTrace();<br /> <span style="color: #008080; "> 97</span> }  <span style="color: #0000FF; ">catch</span> (Exception e) {<br /> <span style="color: #008080; "> 98</span> e.printStackTrace();<br /> <span style="color: #008080; "> 99</span> }<br /> <span style="color: #008080; ">100</span> }<br /> <span style="color: #008080; ">101</span> }       <br /> <span style="color: #008080; ">102</span> <span style="color: #0000FF; ">protected</span>  <span style="color: #0000FF; ">void</span> doPost(HttpServletRequest request, HttpServletResponse response) <span style="color: #0000FF; ">throws</span> ServletException, IOException {<br /> <span style="color: #008080; ">103</span> doGet(request,response);<br /> <span style="color: #008080; ">104</span> }  <br /> <span style="color: #008080; ">105</span> String  stdUrl="";<br /> <span style="color: #008080; ">106</span> String  url="";<br /> <span style="color: #008080; ">107</span> String  msgidStr="";<br /> <span style="color: #008080; ">108</span> String  messageHtml="";<br /> <span style="color: #008080; ">109</span> String  attachment="";<br /> <span style="color: #008080; ">110</span> String  recipients="";<br /> <span style="color: #008080; ">111</span> String  nodeid="";<br /> <span style="color: #008080; ">112</span> <span style="color: #0000FF; ">int</span>  currentnodeid=0;<br /> <span style="color: #008080; ">113</span> String  node="";<br /> <span style="color: #008080; ">114</span> HashMap<String,Part> imgs=<span style="color: #0000FF; ">new</span> HashMap<String,Part>();<br /> <span style="color: #008080; ">115</span> <span style="color: #0000FF; ">public</span>  String displayMessage(HttpServletRequest request,Part p,<span style="color: #0000FF; ">int</span> partid) <span style="color: #0000FF; ">throws</span> Exception{<br /> <span style="color: #008080; ">116</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">System.out.println("Type:"+p.getContentType());</span><span style="color: #008000; "><br /> </span><span style="color: #008080; ">117</span> <span style="color: #008000; "></span><span style="color: #0000FF; ">if</span> (currentnodeid==1&&!node.endsWith("0")){<br /> <span style="color: #008080; ">118</span> nodeid=nodeid.substring(0,(nodeid.length()-2));<br /> <span style="color: #008080; ">119</span> }<br /> <span style="color: #008080; ">120</span> node=nodeid+currentnodeid;<br /> <span style="color: #008080; ">121</span> System.out.println(node);<br /> <span style="color: #008080; ">122</span> <span style="color: #0000FF; ">if</span> (p.isMimeType("multipart/*")){<br /> <span style="color: #008080; ">123</span> nodeid+=currentnodeid+"-";<br /> <span style="color: #008080; ">124</span> Multipart mp=(Multipart) p.getContent();<br /> <span style="color: #008080; ">125</span> <span style="color: #0000FF; ">int</span>  cnt=mp.getCount();<br /> <span style="color: #008080; ">126</span> String  mpct=mp.getContentType().toLowerCase();<br /> <span style="color: #008080; ">127</span> <span style="color: #0000FF; ">for</span> (<span style="color: #0000FF; ">int</span> i=0;<br /> <span style="color: #008080; ">128</span> i<cnt;<br /> <span style="color: #008080; ">129</span> i++){<br /> <span style="color: #008080; ">130</span> <span style="color: #0000FF; ">if</span> (mpct.startsWith("multipart/alternative")&&mp.getBodyPart(i).getContentType().toLowerCase().startsWith("text/plain"))<span style="color: #0000FF; ">continue</span>;<br /> <span style="color: #008080; ">131</span> currentnodeid=i;<br /> <span style="color: #008080; ">132</span> displayMessage(request,mp.getBodyPart(i),i);<br /> <span style="color: #008080; ">133</span> }<br /> <span style="color: #008080; ">134</span> }<br /> <span style="color: #008080; ">135</span> <span style="color: #0000FF; ">if</span> (p.isMimeType("text/plain")||p.isMimeType("text/html")){<br /> <span style="color: #008080; ">136</span> <span style="color: #0000FF; ">if</span> (messageHtml=="") {<br /> <span style="color: #008080; ">137</span> messageHtml=(String)p.getContent();<br /> <span style="color: #008080; ">138</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">System.out.println(messageHtml);</span><span style="color: #008000; "><br /> </span><span style="color: #008080; ">139</span> <span style="color: #008000; "></span>}  <span style="color: #0000FF; ">else</span> {<br /> <span style="color: #008080; ">140</span> messageHtml=messageHtml+"<HR/>"+(String)p.getContent();<br /> <span style="color: #008080; ">141</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">System.out.println(messageHtml);</span><span style="color: #008000; "><br /> </span><span style="color: #008080; ">142</span> <span style="color: #008000; "></span>}<br /> <span style="color: #008080; ">143</span> }  <span style="color: #0000FF; ">else</span> <span style="color: #0000FF; ">if</span> (p.isMimeType("message/rfc822")) {<br /> <span style="color: #008080; ">144</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">Nested Message<br /> </span><span style="color: #008080; ">145</span> <span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">displayMessage(request,(Part)p.getContent(),partid);</span><span style="color: #008000; "><br /> </span><span style="color: #008080; ">146</span> <span style="color: #008000; "></span>} <span style="color: #0000FF; ">else</span>{<br /> <span style="color: #008080; ">147</span> <span style="color: #0000FF; ">if</span> (node.length()>2)    node=node.substring(2);<br /> <span style="color: #008080; ">148</span> System.out.println(node);<br /> <span style="color: #008080; ">149</span> String  disposition=p.getDisposition();<br /> <span style="color: #008080; ">150</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">System.out.println("disposition:"+disposition);</span><span style="color: #008000; "><br /> </span><span style="color: #008080; ">151</span> <span style="color: #008000; "></span><span style="color: #0000FF; ">if</span> (disposition!=<span style="color: #0000FF; ">null</span>&&disposition.equalsIgnoreCase(Part.ATTACHMENT)){<br /> <span style="color: #008080; ">152</span> String  filename=getFileName(p);<br /> <span style="color: #008080; ">153</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">imgs.put(filename,p);<br /> </span><span style="color: #008080; ">154</span> <span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">attachment全部攑օ内存Q会造成内存膨胀Q若及时清空又造成Back回来的页面访问不到Attachment<br /> </span><span style="color: #008080; ">155</span> <span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">attachment+=","+"<a href='"+url+"/"+filename+"?"+msgidStr+"&partid="+partid+"'>"+filename+"</a>";</span><span style="color: #008000; "><br /> </span><span style="color: #008080; ">156</span> <span style="color: #008000; "></span>attachment+=","+"<a href='"+url+"/"+filename+"?"+msgidStr+"&node="+node+"'>"+filename+"</a>";<br /> <span style="color: #008080; ">157</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">attachment+=","+"<a href='"+url+"/"+filename+"?"+"&partname="+getFileName(p)+"'>"+filename+"</a>";<br /> </span><span style="color: #008080; ">158</span> <span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">System.out.println(attachment);</span><span style="color: #008000; "><br /> </span><span style="color: #008080; ">159</span> <span style="color: #008000; "></span>} <span style="color: #0000FF; ">else</span>{<br /> <span style="color: #008080; ">160</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">if(disposition!=null&&disposition.equalsIgnoreCase(Part.INLINE)){</span><span style="color: #008000; "><br /> </span><span style="color: #008080; ">161</span> <span style="color: #008000; "></span><span style="color: #0000FF; ">if</span> (getCid(p)!=<span style="color: #0000FF; ">null</span>)    {<br /> <span style="color: #008080; ">162</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">System.out.println("Enter Replace");</span><span style="color: #008000; "><br /> </span><span style="color: #008080; ">163</span> <span style="color: #008000; "></span>imgs.put(getFileName(p),p);<br /> <span style="color: #008080; ">164</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">String uri=url+"?"+msgidStr+"&partid="+partid;</span><span style="color: #008000; "><br /> </span><span style="color: #008080; ">165</span> <span style="color: #008000; "></span>String  uri=url+"?"+msgidStr+"&node="+node;<br /> <span style="color: #008080; ">166</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">String uri=url+"?"+"&partname="+getFileName(p);</span><span style="color: #008000; "><br /> </span><span style="color: #008080; ">167</span> <span style="color: #008000; "></span>String  t=messageHtml.substring(messageHtml.indexOf(getCid(p))-1);<br /> <span style="color: #008080; ">168</span> <span style="color: #0000FF; ">if</span> (!(t.startsWith("\"")||t.startsWith("\'"))){<br /> <span style="color: #008080; ">169</span> uri="'"+uri+"'";<br /> <span style="color: #008080; ">170</span> }<br /> <span style="color: #008080; ">171</span> messageHtml=messageHtml.replace(getCid(p),uri);<br /> <span style="color: #008080; ">172</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">System.out.println("cid:"+getCid(p));     <br /> </span><span style="color: #008080; ">173</span> <span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">System.out.println(uri);</span><span style="color: #008000; "><br /> </span><span style="color: #008080; ">174</span> <span style="color: #008000; "></span>}<br /> <span style="color: #008080; ">175</span> }<br /> <span style="color: #008080; ">176</span> }<br /> <span style="color: #008080; ">177</span> <span style="color: #0000FF; ">return</span>  messageHtml+"attachhncwx="+attachment+recipients;<br /> <span style="color: #008080; ">178</span> }<br /> <span style="color: #008080; ">179</span> <span style="color: #0000FF; ">public</span>  <span style="color: #0000FF; ">void</span> displayPart(Message m,String node,HttpServletResponse response,ServletOutputStream out) <br /> <span style="color: #008080; ">180</span> <span style="color: #0000FF; ">throws</span> MessagingException, IOException{<br /> <span style="color: #008080; ">181</span> Part part = getPart(m,node);<br /> <span style="color: #008080; ">182</span> String  sct = part.getContentType();<br /> <span style="color: #008080; ">183</span> response.setContentType(sct);<br /> <span style="color: #008080; ">184</span> outPut(part,out);<br /> <span style="color: #008080; ">185</span> }<br /> <span style="color: #008080; ">186</span> <span style="color: #0000FF; ">private</span>  Part getPart(Part m, String nodes) <span style="color: #0000FF; ">throws</span> NumberFormatException, MessagingException, IOException {<br /> <span style="color: #008080; ">187</span> <span style="color: #0000FF; ">if</span> (node==<span style="color: #0000FF; ">null</span>)<span style="color: #0000FF; ">return</span> m;<br /> <span style="color: #008080; ">188</span> String  node=nodes.substring(0,1);<br /> <span style="color: #008080; ">189</span> System.out.println(nodes+" : "+node);<br /> <span style="color: #008080; ">190</span> <span style="color: #0000FF; ">int</span>  nid=Integer.parseInt(node);<br /> <span style="color: #008080; ">191</span> <span style="color: #0000FF; ">if</span> (m.getContent()==<span style="color: #0000FF; ">null</span>)System.out.print("no content");<br /> <span style="color: #008080; ">192</span> Part p=((Multipart)m.getContent()).getBodyPart(nid);<br /> <span style="color: #008080; ">193</span> <span style="color: #0000FF; ">if</span> (nodes.length()>2)nodes=nodes.substring(2);<br /> <span style="color: #008080; ">194</span> <span style="color: #0000FF; ">else</span>  {<br /> <span style="color: #008080; ">195</span> <span style="color: #0000FF; ">if</span> (nodes.length()==1)nodes="";<br /> <span style="color: #008080; ">196</span> }<br /> <span style="color: #008080; ">197</span> <span style="color: #0000FF; ">if</span> (nodes.length()>0)p=getPart(p,nodes);<br /> <span style="color: #008080; ">198</span> <span style="color: #0000FF; ">return</span>  p;<br /> <span style="color: #008080; ">199</span> }<br /> <span style="color: #008080; ">200</span> <span style="color: #0000FF; ">public</span>  <span style="color: #0000FF; ">void</span> displayPart(String partname,HttpServletResponse response,    ServletOutputStream out) <span style="color: #0000FF; ">throws</span> MessagingException, IOException{<br /> <span style="color: #008080; ">201</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">System.out.println(imgs.keySet()+":"+partname);</span><span style="color: #008000; "><br /> </span><span style="color: #008080; ">202</span> <span style="color: #008000; "></span>Part part=imgs.get(partname);<br /> <span style="color: #008080; ">203</span> String  ct=part.getContentType();<br /> <span style="color: #008080; ">204</span> <span style="color: #0000FF; ">if</span> (ct!=<span style="color: #0000FF; ">null</span>)        response.setContentType(ct);<br /> <span style="color: #008080; ">205</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">=====Start push Stream into out</span><span style="color: #008000; "><br /> </span><span style="color: #008080; ">206</span> <span style="color: #008000; "></span>InputStream in=part.getInputStream();<br /> <span style="color: #008080; ">207</span> ByteArrayOutputStream bos=<span style="color: #0000FF; ">new</span> ByteArrayOutputStream();<br /> <span style="color: #008080; ">208</span> <span style="color: #0000FF; ">byte</span> [] buffer=<span style="color: #0000FF; ">new</span> <span style="color: #0000FF; ">byte</span>[8192];<br /> <span style="color: #008080; ">209</span> <span style="color: #0000FF; ">int</span>  count=0;<br /> <span style="color: #008080; ">210</span> <span style="color: #0000FF; ">while</span> ((count=in.read(buffer))>=0) bos.write(buffer,0,count);<br /> <span style="color: #008080; ">211</span> in .close();<br /> <span style="color: #008080; ">212</span> <span style="color: #0000FF; ">try</span>{<br /> <span style="color: #008080; ">213</span> out.write(bos.toByteArray());<br /> <span style="color: #008080; ">214</span> out.flush();<br /> <span style="color: #008080; ">215</span> } <span style="color: #0000FF; ">catch</span>(Exception e){<br /> <span style="color: #008080; ">216</span> }<br /> <span style="color: #008080; ">217</span> out.close();<br /> <span style="color: #008080; ">218</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">=====End</span><span style="color: #008000; "><br /> </span><span style="color: #008080; ">219</span> <span style="color: #008000; "></span>}<br /> <span style="color: #008080; ">220</span> <span style="color: #0000FF; ">public</span>  <span style="color: #0000FF; ">void</span> displayPart(Message m,<span style="color: #0000FF; ">int</span> partid,HttpServletResponse response,        ServletOutputStream out) <span style="color: #0000FF; ">throws</span> MessagingException, IOException{<br /> <span style="color: #008080; ">221</span> Multipart mp = (Multipart)m.getContent();<br /> <span style="color: #008080; ">222</span> Part part = mp.getBodyPart(partid);<br /> <span style="color: #008080; ">223</span> String  sct = part.getContentType();<br /> <span style="color: #008080; ">224</span> <span style="color: #008000; ">//</span><span style="color: #008000; "> ContentType ct = new ContentType(sct);</span><span style="color: #008000; "><br /> </span><span style="color: #008080; ">225</span> <span style="color: #008000; "></span>response.setContentType(sct);<br /> <span style="color: #008080; ">226</span> <span style="color: #0000FF; ">if</span>  (sct == <span style="color: #0000FF; ">null</span>) {<br /> <span style="color: #008080; ">227</span> out.println("invalid part");<br /> <span style="color: #008080; ">228</span> <span style="color: #0000FF; ">return</span>;<br /> <span style="color: #008080; ">229</span> }<br /> <span style="color: #008080; ">230</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">=====Start push Stream into out</span><span style="color: #008000; "><br /> </span><span style="color: #008080; ">231</span> <span style="color: #008000; "></span>InputStream in=part.getInputStream();<br /> <span style="color: #008080; ">232</span> ByteArrayOutputStream bos=<span style="color: #0000FF; ">new</span> ByteArrayOutputStream();<br /> <span style="color: #008080; ">233</span> <span style="color: #0000FF; ">byte</span> [] buffer=<span style="color: #0000FF; ">new</span> <span style="color: #0000FF; ">byte</span>[8192];<br /> <span style="color: #008080; ">234</span> <span style="color: #0000FF; ">int</span>  count=0;<br /> <span style="color: #008080; ">235</span> <span style="color: #0000FF; ">while</span> ((count=in.read(buffer))>=0) bos.write(buffer,0,count);<br /> <span style="color: #008080; ">236</span> in .close();<br /> <span style="color: #008080; ">237</span> <span style="color: #0000FF; ">try</span>{<br /> <span style="color: #008080; ">238</span> out.write(bos.toByteArray());<br /> <span style="color: #008080; ">239</span> out.flush();<br /> <span style="color: #008080; ">240</span> } <span style="color: #0000FF; ">catch</span>(Exception e){<br /> <span style="color: #008080; ">241</span> }<br /> <span style="color: #008080; ">242</span> out.close();<br /> <span style="color: #008080; ">243</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">=====End</span><span style="color: #008000; "><br /> </span><span style="color: #008080; ">244</span> <span style="color: #008000; "></span>}<br /> <span style="color: #008080; ">245</span> <span style="color: #0000FF; ">private</span>  String getFileName(Part p) <span style="color: #0000FF; ">throws</span> MessagingException, UnsupportedEncodingException{<br /> <span style="color: #008080; ">246</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">System.out.println("filename:");</span><span style="color: #008000; "><br /> </span><span style="color: #008080; ">247</span> <span style="color: #008000; "></span>String  filename=p.getFileName();<br /> <span style="color: #008080; ">248</span> <span style="color: #0000FF; ">if</span> (filename==<span style="color: #0000FF; ">null</span>)<span style="color: #0000FF; ">return</span> <span style="color: #0000FF; ">null</span>;<br /> <span style="color: #008080; ">249</span> filename=<span style="color: #0000FF; ">new</span> String(filename.getBytes("ISO-8859-1"),"GB2312");<br /> <span style="color: #008080; ">250</span> <span style="color: #0000FF; ">int</span>  indexStart=filename.toUpperCase().indexOf("=?GB");<br /> <span style="color: #008080; ">251</span> <span style="color: #0000FF; ">if</span> (indexStart>-1){<br /> <span style="color: #008080; ">252</span> filename=filename.substring(0,indexStart)+MimeUtility.decodeText(filename.substring(indexStart));<br /> <span style="color: #008080; ">253</span> }<br /> <span style="color: #008080; ">254</span> <span style="color: #0000FF; ">return</span>  filename;<br /> <span style="color: #008080; ">255</span> }<br /> <span style="color: #008080; ">256</span> <span style="color: #0000FF; ">private</span>  String getCid(Part p) <span style="color: #0000FF; ">throws</span> MessagingException{<br /> <span style="color: #008080; ">257</span> String  cidraw=<span style="color: #0000FF; ">null</span>,cid=<span style="color: #0000FF; ">null</span>;<br /> <span style="color: #008080; ">258</span>     <br /> <span style="color: #008080; ">259</span> String [] headers=p.getHeader("Content-id");<br /> <span style="color: #008080; ">260</span> <span style="color: #0000FF; ">if</span> (headers!=<span style="color: #0000FF; ">null</span> && headers.length>0) {<br /> <span style="color: #008080; ">261</span> cidraw=headers[0];<br /> <span style="color: #008080; ">262</span> } <span style="color: #0000FF; ">else</span>{<br /> <span style="color: #008080; ">263</span> <span style="color: #0000FF; ">return</span>  <span style="color: #0000FF; ">null</span>;<br /> <span style="color: #008080; ">264</span> }<br /> <span style="color: #008080; ">265</span> <span style="color: #0000FF; ">if</span> (cidraw.startsWith("<")&&cidraw.endsWith(">")) {<br /> <span style="color: #008080; ">266</span> cid="cid:"+cidraw.substring(1,cidraw.length()-1);<br /> <span style="color: #008080; ">267</span> }  <span style="color: #0000FF; ">else</span> {<br /> <span style="color: #008080; ">268</span> cid="cid:"+cidraw;<br /> <span style="color: #008080; ">269</span> }<br /> <span style="color: #008080; ">270</span> <span style="color: #0000FF; ">return</span>  cid;<br /> <span style="color: #008080; ">271</span> }<br /> <span style="color: #008080; ">272</span> <span style="color: #008000; ">/**</span><span style="color: #008000; "><br /> </span><span style="color: #008080; ">273</span> <span style="color: #008000; ">* 获得邮g的收件hQ抄送,和密送的地址和姓名,Ҏ所传递的参数的不?nbsp;"to"----收g?nbsp;"cc"---抄送h地址 "bcc"---密送h地址<br /> </span><span style="color: #008080; ">274</span> <span style="color: #008000; ">* </span><span style="color: #808080; ">@throws</span><span style="color: #008000; "> Exception <br /> </span><span style="color: #008080; ">275</span> <span style="color: #008000; "></span><span style="color: #008000; ">*/</span><br /> <span style="color: #008080; ">276</span> <span style="color: #0000FF; ">private</span>  String getAllgetRecipients(Message m) <span style="color: #0000FF; ">throws</span> Exception{<br /> <span style="color: #008080; ">277</span> <span style="color: #0000FF; ">return</span>  "mailaddrTo="    +getRecipients(m,"TO")<br /> <span style="color: #008080; ">278</span> +"mailaddrCc="+getRecipients(m,"CC")<br /> <span style="color: #008080; ">279</span> +"mailaddrBcc="+getRecipients(m,"BCC");<br /> <span style="color: #008080; ">280</span> }<br /> <span style="color: #008080; ">281</span> <span style="color: #0000FF; ">private</span>  String getRecipients(Message m,String type) <span style="color: #0000FF; ">throws</span> Exception {<br /> <span style="color: #008080; ">282</span> StringBuffer mailaddr = <span style="color: #0000FF; ">new</span> StringBuffer("");<br /> <span style="color: #008080; ">283</span> String  addtype = type.toUpperCase();<br /> <span style="color: #008080; ">284</span> InternetAddress[] address = <span style="color: #0000FF; ">null</span>;<br /> <span style="color: #008080; ">285</span> <span style="color: #0000FF; ">if</span>  (addtype.equals("TO")) {<br /> <span style="color: #008080; ">286</span> address = (InternetAddress[]) m.getRecipients(Message.RecipientType.TO);<br /> <span style="color: #008080; ">287</span> }  <span style="color: #0000FF; ">else</span> <span style="color: #0000FF; ">if</span> (addtype.equals("CC")) {<br /> <span style="color: #008080; ">288</span> address = (InternetAddress[]) m.getRecipients(Message.RecipientType.CC);<br /> <span style="color: #008080; ">289</span> }  <span style="color: #0000FF; ">else</span> {<br /> <span style="color: #008080; ">290</span> address = (InternetAddress[]) m.getRecipients(Message.RecipientType.BCC);<br /> <span style="color: #008080; ">291</span> }<br /> <span style="color: #008080; ">292</span> <span style="color: #0000FF; ">if</span>  (address != <span style="color: #0000FF; ">null</span>) {<br /> <span style="color: #008080; ">293</span> <span style="color: #0000FF; ">for</span>  (<span style="color: #0000FF; ">int</span> i = 0;<br /> <span style="color: #008080; ">294</span> i < address.length;<br /> <span style="color: #008080; ">295</span> i++) {<br /> <span style="color: #008080; ">296</span> String  email = address[i].getAddress();<br /> <span style="color: #008080; ">297</span> <span style="color: #0000FF; ">if</span>  (email == <span style="color: #0000FF; ">null</span>)<br /> <span style="color: #008080; ">298</span> email = "";<br /> <span style="color: #008080; ">299</span> <span style="color: #0000FF; ">else</span>  {<br /> <span style="color: #008080; ">300</span> email = MimeUtility.decodeText(email);<br /> <span style="color: #008080; ">301</span> }<br /> <span style="color: #008080; ">302</span> String  personal = address[i].getPersonal();<br /> <span style="color: #008080; ">303</span> <span style="color: #0000FF; ">if</span>  (personal == <span style="color: #0000FF; ">null</span>)<br /> <span style="color: #008080; ">304</span> personal = "";<br /> <span style="color: #008080; ">305</span> <span style="color: #0000FF; ">else</span>  {<br /> <span style="color: #008080; ">306</span> personal = MimeUtility.decodeText(personal);<br /> <span style="color: #008080; ">307</span> }<br /> <span style="color: #008080; ">308</span> mailaddr.append("\""+personal+"\" ");<br /> <span style="color: #008080; ">309</span> mailaddr.append("<");<br /> <span style="color: #008080; ">310</span> mailaddr.append(email);<br /> <span style="color: #008080; ">311</span> mailaddr.append(">");<br /> <span style="color: #008080; ">312</span> mailaddr.append(",");<br /> <span style="color: #008080; ">313</span> }<br /> <span style="color: #008080; ">314</span> }<br /> <span style="color: #008080; ">315</span> <span style="color: #0000FF; ">if</span> (mailaddr.length()>0)mailaddr.deleteCharAt(mailaddr.length()-1);<br /> <span style="color: #008080; ">316</span> <span style="color: #0000FF; ">return</span>  mailaddr.toString();<br /> <span style="color: #008080; ">317</span> }<br /> <span style="color: #008080; ">318</span> <span style="color: #0000FF; ">private</span>  <span style="color: #0000FF; ">void</span> outPut(Part part,ServletOutputStream out) <span style="color: #0000FF; ">throws</span> IOException, MessagingException{<br /> <span style="color: #008080; ">319</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">=====Start push Stream into out</span><span style="color: #008000; "><br /> </span><span style="color: #008080; ">320</span> <span style="color: #008000; "></span>InputStream in=part.getInputStream();<br /> <span style="color: #008080; ">321</span> ByteArrayOutputStream bos=<span style="color: #0000FF; ">new</span> ByteArrayOutputStream();<br /> <span style="color: #008080; ">322</span> <span style="color: #0000FF; ">byte</span> [] buffer=<span style="color: #0000FF; ">new</span> <span style="color: #0000FF; ">byte</span>[8192];<br /> <span style="color: #008080; ">323</span> <span style="color: #0000FF; ">int</span>  count=0;<br /> <span style="color: #008080; ">324</span> <span style="color: #0000FF; ">while</span> ((count=in.read(buffer))>=0) bos.write(buffer,0,count);<br /> <span style="color: #008080; ">325</span> in .close();<br /> <span style="color: #008080; ">326</span> <span style="color: #0000FF; ">try</span>{<br /> <span style="color: #008080; ">327</span> out.write(bos.toByteArray());<br /> <span style="color: #008080; ">328</span> out.flush();<br /> <span style="color: #008080; ">329</span> } <span style="color: #0000FF; ">catch</span>(Exception e){<br /> <span style="color: #008080; ">330</span> }<br /> <span style="color: #008080; ">331</span> out.close();<br /> <span style="color: #008080; ">332</span> <span style="color: #008000; ">//</span><span style="color: #008000; ">=====End</span><span style="color: #008000; "><br /> </span><span style="color: #008080; ">333</span> <span style="color: #008000; "></span>}<br /> <span style="color: #008080; ">334</span> }</div> <p><br /></p><div class="884uwmy" id="divJSOutput" style="width: 997px; height: 540px"><div id="qqwq8ck" class="codeRoot"> </div> </div><img src ="http://www.tkk7.com/luchunwei/aggbug/56128.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/luchunwei/" target="_blank">春天׃开</a> 2006-07-02 08:17 <a href="http://www.tkk7.com/luchunwei/archive/2006/07/02/56128.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://0101av.com" target="_blank">ձһѸ</a>| <a href="http://773311h.com" target="_blank">׾Ʒһ</a>| <a href="http://www-75044.com" target="_blank">ڵƵ</a>| <a href="http://hyhtzh.com" target="_blank">ƷѾþ</a>| <a href="http://kppp4.com" target="_blank">޵һҳĻ</a>| <a href="http://gsonlinet.com" target="_blank">˾ƷƵ</a>| <a href="http://5g6z.com" target="_blank">91Ƶ</a>| <a href="http://jcthbank.com" target="_blank">޲Ƶ߹ۿ</a>| <a href="http://www398ph.com" target="_blank">޾Ʒa߹ۿ</a>| <a href="http://5g5t.com" target="_blank">51ƷƵѹר</a>| <a href="http://www-92109.com" target="_blank">ɫaAV</a>| <a href="http://tltcn.com" target="_blank">av߲ </a>| <a href="http://732r.com" target="_blank">һŮȫƾþƬ</a>| <a href="http://xx16xx.com" target="_blank">XOɫXO</a>| <a href="http://yuase.com" target="_blank">޶߹ۿվ</a>| <a href="http://wwwk47.com" target="_blank">˳߲VA</a>| <a href="http://micehunan.com" target="_blank">˳ӰԺҹվ</a>| <a href="http://pyjxyey.com" target="_blank">Ƶ˳߲</a>| <a href="http://cin17.com" target="_blank">ŮAëƬ</a>| <a href="http://scbangde.com" target="_blank">ƷѾþþþþþþ </a>| <a href="http://720880.com" target="_blank">˳wwwӰ</a>| <a href="http://ydstbj.com" target="_blank">AVרAVëվ</a>| <a href="http://wxyz2.com" target="_blank">ػaëƬƵ</a>| <a href="http://huafagz.com" target="_blank">ĻƵ</a>| <a href="http://www026qqcom.com" target="_blank">޾Һ </a>| <a href="http://my533.com" target="_blank">www.޾Ʒ.com</a>| <a href="http://cqtchtwq.com" target="_blank">Ƶۿ</a>| <a href="http://maomi90.com" target="_blank">kk4kkƵëƬ</a>| <a href="http://gkhnf.com" target="_blank">ɫ͵͵ۺAV</a>| <a href="http://317777aa.com" target="_blank">AVרAv</a>| <a href="http://ri9999.com" target="_blank">aëƬ</a>| <a href="http://www84847.com" target="_blank">վƵ</a>| <a href="http://caicpa.com" target="_blank">þþƷ</a>| <a href="http://jgc528.com" target="_blank">˸һþ</a>| <a href="http://mcsser.com" target="_blank">ŷղר</a>| <a href="http://1777000.com" target="_blank">þ޹vwww</a>| <a href="http://aaa99999.com" target="_blank">Ʒר </a>| <a href="http://www73234.com" target="_blank">޸רպƷ</a>| <a href="http://591se591se.com" target="_blank">aëƬ18ϹۿƷ</a>| <a href="http://2255325.com" target="_blank">˳ҹƵ߹ۿ</a>| <a href="http://9haolc.com" target="_blank">Ƶһ߹ۿ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>