<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6758260041926380909</id><updated>2010-07-28T13:48:29.271+08:00</updated><title type='text'>Sean's Blog</title><subtitle type='html'>All of Sean‧All for You</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sean.o4u.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default'/><link rel='alternate' type='text/html' href='http://sean.o4u.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Sean Lin</name><uri>http://www.blogger.com/profile/16994068867619037922</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6758260041926380909.post-1784713573978896377</id><published>2010-05-27T10:37:00.005+08:00</published><updated>2010-07-02T18:43:43.543+08:00</updated><title type='text'>照片網誌小幫手 (Flickr to Blogger)</title><content type='html'>&lt;img border="0" src="http://3.bp.blogspot.com/_T8KAZQJUgOM/S_3ZiRnaURI/AAAAAAAAE6c/4p7NxLUGB5Y/s320/sample-blogger.png" align="right"/&gt;&lt;br /&gt;閒閒在家沒事幹，寫了一個網頁小程式。我稱它為「&lt;b&gt;照片網誌小幫手&lt;/b&gt;」，它可以幫您把 Flickr 照片以相簿方式刊登在 Blogger 網誌。(&lt;a href="http://flickr-logs.blogspot.com/2010/05/blog-post.html" target="_blank"&gt;效果展示&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;它完全用 JavaScript 完成，沒有動用到 Server 端的程式。&lt;br /&gt;&lt;br /&gt;網址在 &lt;a href="http://s.o4u.com/flog/"&gt;http://s.o4u.com/flog/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;大家來玩玩看吧!&lt;br /&gt;&lt;br /&gt;雖然&amp;nbsp;Flickr 雖然每個月都開放上傳空間，但是免費使用者在 Flickr 網頁上最多只可以瀏覽最後的 200 張照片。只要照片網址記得，Flickr 並不會擋住超過200張的照片。因此，結合了網誌的功能後，再也沒有 200 張照片的限制了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6758260041926380909-1784713573978896377?l=sean.o4u.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sean.o4u.com/feeds/1784713573978896377/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://sean.o4u.com/2010/05/flickr-to-blogger.html#comment-form' title='3 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/1784713573978896377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/1784713573978896377'/><link rel='alternate' type='text/html' href='http://sean.o4u.com/2010/05/flickr-to-blogger.html' title='照片網誌小幫手 (Flickr to Blogger)'/><author><name>Sean Lin</name><uri>http://www.blogger.com/profile/16994068867619037922</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13467641485652785238'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_T8KAZQJUgOM/S_3ZiRnaURI/AAAAAAAAE6c/4p7NxLUGB5Y/s72-c/sample-blogger.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6758260041926380909.post-6359189471847867223</id><published>2009-11-05T07:57:00.008+08:00</published><updated>2010-03-16T15:25:39.677+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='自製小程式'/><title type='text'>噗浪備份工具</title><content type='html'>&lt;img src="http://sites.google.com/site/seanjsfile/pbscr/PlurkBackup.png"/&gt;&lt;br /&gt;&lt;br /&gt;■ 程式版本：v1.1 (3/16/2010 更新)&lt;br /&gt;&lt;br /&gt;■ 檔案下載：&lt;a href="http://sites.google.com/site/seanjsfile/pbscr/PlurkBackup11.zip?attredirects=0&amp;amp;d=1"&gt;PlurkBackup11.zip&lt;/a&gt; (4 MB)&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;噗浪 (http://www.plurk.com/) 在台灣算是使用人口最多的微型網誌。它有別於堆特之時間軸設計、以及回覆功能非常受到歡迎。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;噗浪客若要查詢稍久以前的噗文，用滑鼠滾時間軸不知要滾到民國幾年。此程式可以將指定期間內自己的噗文全部抓下來。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;從 1.0 版閞始，已經可以連同回覆的噗文一起抓下來了。&lt;br /&gt;1.1版增加「分離私噗」功能。&lt;br /&gt;希望您會喜歡，也請您不吝給小弟指教。&lt;/div&gt;&lt;br /&gt;&lt;blockquote&gt;這個程式由 Perl 撰寫而成。使用到 CPAN 上的 &lt;a href="http://search.cpan.org/dist/WWW-Plurk/lib/WWW/Plurk.pm"&gt;WWW-Plurk&lt;/a&gt; 模組，由於它太久沒維護了已經不太能使用，我有修改到一些。需要我的原始碼可以在&lt;a href="http://sites.google.com/site/seanjsfile/pbscr"&gt;這裡&lt;/a&gt;下載。&lt;/blockquote&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6758260041926380909-6359189471847867223?l=sean.o4u.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sean.o4u.com/feeds/6359189471847867223/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://sean.o4u.com/2009/11/blog-post.html#comment-form' title='118 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/6359189471847867223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/6359189471847867223'/><link rel='alternate' type='text/html' href='http://sean.o4u.com/2009/11/blog-post.html' title='噗浪備份工具'/><author><name>Sean Lin</name><uri>http://www.blogger.com/profile/16994068867619037922</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13467641485652785238'/></author><thr:total>118</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6758260041926380909.post-6622390391836396305</id><published>2009-10-25T10:12:00.003+08:00</published><updated>2009-11-05T08:24:32.858+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>PicasaWeb Perl Module</title><content type='html'>&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.google.com/intl/zh-TW/images/logos/picasa_logo.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://www.google.com/intl/zh-TW/images/logos/picasa_logo.gif" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;■ Download/下載 ：&amp;nbsp;&lt;a href="http://s.o4u.com/host/blog/picasaweb_perl.zip"&gt;picasaweb_perl.zip&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;你在找 Perl 管理 PicasaWeb 的模組嗎? 如果你在 CPAN 上找到 Net::Google::PicasaWeb 覺得很難用，還有功能不全。可以來試試小弟改寫的 Perl 模組。&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;CPAN 上的 Net::Google::PicasaWeb 並沒有建立相簿、上傳照片等功能。我改寫對岸 董强 &lt;dongqiang#gmail.com&gt; 的 Google::Picasa。歡迎大家使用。&lt;/dongqiang#gmail.com&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;裡面有幾個簡單的範例，沒什麼教學文件。有心使用的人只好用肉眼看看 Picasa.pm 這個檔案吧!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6758260041926380909-6622390391836396305?l=sean.o4u.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sean.o4u.com/feeds/6622390391836396305/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://sean.o4u.com/2009/10/picasaweb-perl-module.html#comment-form' title='4 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/6622390391836396305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/6622390391836396305'/><link rel='alternate' type='text/html' href='http://sean.o4u.com/2009/10/picasaweb-perl-module.html' title='PicasaWeb Perl Module'/><author><name>Sean Lin</name><uri>http://www.blogger.com/profile/16994068867619037922</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13467641485652785238'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6758260041926380909.post-9205828727171491755</id><published>2009-06-25T17:09:00.002+08:00</published><updated>2010-05-18T03:54:09.727+08:00</updated><title type='text'>在 .Net 使用 GDI+ 調整圖片亮度</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/_T8KAZQJUgOM/S_GexN-bbdI/AAAAAAAAE5o/YRpaorQaWSk/s1600/1600x1200.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="150" src="http://3.bp.blogspot.com/_T8KAZQJUgOM/S_GexN-bbdI/AAAAAAAAE5o/YRpaorQaWSk/s200/1600x1200.jpg" width="200" /&gt;&lt;/a&gt;也就是 RGB 一起調啦!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.bee-eee.com/2008/01/23/c-adjusting-brightnesscontrast-and-gamma-of-an-image/"&gt;原始出處&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Bitmap origanalImage;&lt;br /&gt;Bitmap adjustedImage;&lt;br /&gt;double brightness = 1.0f; // no change in brightness&lt;br /&gt;double constrast = 2.0f; // twice the contrast&lt;br /&gt;double gamma = 1.0f; // no change in gamma&lt;br /&gt;&lt;br /&gt;float adjustedBrightness = brightness - 1.0f;&lt;br /&gt;// create matrix that will brighten and contrast the image&lt;br /&gt;float[][] ptsArray ={&lt;br /&gt;new float[] {contrast, 0, 0, 0, 0}, // scale red&lt;br /&gt;new float[] {0, contrast, 0, 0, 0}, // scale green&lt;br /&gt;new float[] {0, 0, contrast, 0, 0}, // scale blue&lt;br /&gt;new float[] {0, 0, 0, 1.0f, 0}, // don't scale alpha&lt;br /&gt;new float[] {adjustedBrightness, adjustedBrightness, adjustedBrightness, 0, 1}};&lt;br /&gt;&lt;br /&gt;imageAttributes = new ImageAttributes();&lt;br /&gt;imageAttributes.ClearColorMatrix();&lt;br /&gt;imageAttributes.SetColorMatrix(new ColorMatrix(ptsArray), ColorMatrixFlag.Default, ColorAdjustType.Bitmap);&lt;br /&gt;imageAttributes.SetGamma(gamma, ColorAdjustType.Bitmap);&lt;br /&gt;Graphics g = Graphics.FromImage(adjustedImage);&lt;br /&gt;g.DrawImage(originalImage, new Rectangle(0,0,adjustedImage.Width,adjustedImage.Height)&lt;br /&gt;,0,0,bitImage.Width,bitImage.Height,&lt;br /&gt;GraphicsUnit.Pixel, imageAttributes);&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6758260041926380909-9205828727171491755?l=sean.o4u.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sean.o4u.com/feeds/9205828727171491755/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://sean.o4u.com/2009/06/net-gdi.html#comment-form' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/9205828727171491755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/9205828727171491755'/><link rel='alternate' type='text/html' href='http://sean.o4u.com/2009/06/net-gdi.html' title='在 .Net 使用 GDI+ 調整圖片亮度'/><author><name>Sean Lin</name><uri>http://www.blogger.com/profile/16994068867619037922</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13467641485652785238'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_T8KAZQJUgOM/S_GexN-bbdI/AAAAAAAAE5o/YRpaorQaWSk/s72-c/1600x1200.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6758260041926380909.post-7584989548031025719</id><published>2009-06-03T15:35:00.000+08:00</published><updated>2009-06-03T15:36:31.540+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='DOM'/><category scheme='http://www.blogger.com/atom/ns#' term='技巧'/><category scheme='http://www.blogger.com/atom/ns#' term='DHTML'/><title type='text'>取得瀏覽器事件上的物件 IE/FF 相容式</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;// &lt;xxx&gt; 取得瀏覽器事件上的物件 IE/FF 相容式&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function abc(e) {&lt;/div&gt;&lt;div&gt;   var o=(document.all)?window.event.srcElement:e.target; &lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6758260041926380909-7584989548031025719?l=sean.o4u.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sean.o4u.com/feeds/7584989548031025719/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://sean.o4u.com/2009/06/ieff.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/7584989548031025719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/7584989548031025719'/><link rel='alternate' type='text/html' href='http://sean.o4u.com/2009/06/ieff.html' title='取得瀏覽器事件上的物件 IE/FF 相容式'/><author><name>Sean Lin</name><uri>http://www.blogger.com/profile/16994068867619037922</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13467641485652785238'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6758260041926380909.post-1894113882622232379</id><published>2009-04-22T16:57:00.001+08:00</published><updated>2009-11-25T09:27:48.314+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='barcode'/><title type='text'>[轉載] 一維條碼</title><content type='html'>&lt;div style="text-align: right;"&gt;&lt;span style="font-style: italic;"&gt;轉載自 青衫(邱奕南)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;一維條碼可分為39碼、EAN-13碼、EAN-8碼、UPC-A碼、UPC-E碼、交錯式25碼、CODABAR碼（又稱NW-7碼）、128碼等多種，以下便說明一下各種條碼的意義，以及編碼方式：&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;（一）39碼&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;39碼發展於1974年，由於限制少，又支援文數字，因此多應用於一般管理軟體。其編碼特性如下：&lt;br /&gt;&lt;br /&gt;1. 資料碼可以是0～9、A～Z、-、.、Space、$、/、+、%等43種，資料長度不限，各資料編號次序依上列次序編號0～42。&lt;br /&gt;2. 編碼結構為〔起始碼＋資料碼＋檢查碼＋終止碼〕，其中檢查碼可有可無，且檢查碼亦會被視為資料輸入。&lt;br /&gt;3. 起始碼與終止碼均固定為*。&lt;br /&gt;4. 檢查碼為資料編號值（0～42）累加後（Sum）除以43取餘數，並將該值視為相對應資料編號值的資料。&lt;br /&gt;5. 編碼資料如下，每碼有9條，其中3條為粗，各佔12線。以下各位元奇數位為黑，要畫線，偶數位為白，不畫線，0為細，1為粗：&lt;br /&gt;&lt;br /&gt;0 000110100&lt;br /&gt;1 100100001&lt;br /&gt;2 001100001&lt;br /&gt;3 101100000&lt;br /&gt;4 000110001&lt;br /&gt;5 100110000&lt;br /&gt;6 001110000&lt;br /&gt;7 000100101&lt;br /&gt;8 100100100&lt;br /&gt;9 001100100&lt;br /&gt;A 100001001&lt;br /&gt;B 001001001&lt;br /&gt;C 101001000&lt;br /&gt;D 000011001&lt;br /&gt;E 100011000&lt;br /&gt;F 001011000&lt;br /&gt;G 000001101&lt;br /&gt;H 100001100&lt;br /&gt;I 001001100&lt;br /&gt;J 000011100&lt;br /&gt;K 100000011&lt;br /&gt;L 001000011&lt;br /&gt;M 101000010&lt;br /&gt;N 000010011&lt;br /&gt;O 100010010&lt;br /&gt;P 001010010&lt;br /&gt;Q 000000111&lt;br /&gt;R 100000110&lt;br /&gt;S 001000110&lt;br /&gt;T 000010110&lt;br /&gt;U 110000001&lt;br /&gt;V 011000001&lt;br /&gt;W 111000000&lt;br /&gt;X 010010001&lt;br /&gt;Y 110010000&lt;br /&gt;Z 011010000&lt;br /&gt;- 010000101&lt;br /&gt;. 110000100&lt;br /&gt;Space 011000100&lt;br /&gt;$ 010101000&lt;br /&gt;/ 010100010&lt;br /&gt;+ 010001010&lt;br /&gt;% 000101010&lt;br /&gt;* 010010100&lt;br /&gt;&lt;br /&gt;各資料碼之間必須再空開一條白線。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;（二）EAN-13碼&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;EAN-13碼（European Article Number，歐洲商品條碼）是1977年由歐洲十二個工業國家所共同發展出來的一種條碼系統，其後逐漸變成國際性的條碼系統，一般多用作商品標示條碼。其編碼特性如下：&lt;br /&gt;&lt;br /&gt;1. 資料只能為0～9之數字計12個，連同檢查碼共13碼。資料中包括國家代碼3碼、廠商代碼4碼、產品代碼5碼，為一種專用於商品標示的條碼。&lt;br /&gt;2. 編碼結構為〔護線＋６個左資料碼＋中線＋５個右資料碼＋檢查碼＋護線〕，共佔119條線。其中在畫線時，護線和中線在下方均略長於資料碼，以便肉眼能明顯區分，但對於條碼機閱讀時並無差異。&lt;br /&gt;3. 左資料的編碼方式有A、B兩組之分，而資料的第一碼隱藏在左資料碼的編碼方式，故實際只編出12碼。以下為左資料依首碼所對應使用的編碼方式：&lt;br /&gt;&lt;br /&gt;0 AAAAAA&lt;br /&gt;1 AABABB&lt;br /&gt;2 AABBAB&lt;br /&gt;3 AABBBA&lt;br /&gt;4 ABAABB&lt;br /&gt;5 ABBAAB&lt;br /&gt;6 ABBBAA&lt;br /&gt;7 ABABAB&lt;br /&gt;8 ABABBA&lt;br /&gt;9 ABBABA&lt;br /&gt;&lt;br /&gt;4. 左資料的編碼方式，A組編碼為：&lt;br /&gt;&lt;br /&gt;0 0001101&lt;br /&gt;1 0011001&lt;br /&gt;2 0010011&lt;br /&gt;3 0111101&lt;br /&gt;4 0100011&lt;br /&gt;5 0110001&lt;br /&gt;6 0101111&lt;br /&gt;7 0111011&lt;br /&gt;8 0110111&lt;br /&gt;9 0001011&lt;br /&gt;&lt;br /&gt;B組編碼為：&lt;br /&gt;&lt;br /&gt;0 0100111&lt;br /&gt;1 0110011&lt;br /&gt;2 0011011&lt;br /&gt;3 0100001&lt;br /&gt;4 0011101&lt;br /&gt;5 0111001&lt;br /&gt;6 0000101&lt;br /&gt;7 0010001&lt;br /&gt;8 0001001&lt;br /&gt;9 0010111&lt;br /&gt;&lt;br /&gt;以上各位元0為白，1為黑。&lt;br /&gt;&lt;br /&gt;5. 護線固定為101，中線固定為01010，各位元0為白，1為黑。&lt;br /&gt;6. 右資料編碼方式固定為：&lt;br /&gt;&lt;br /&gt;0 1110010&lt;br /&gt;1 1100110&lt;br /&gt;2 1101100&lt;br /&gt;3 1000010&lt;br /&gt;4 1011100&lt;br /&gt;5 1001110&lt;br /&gt;6 1010000&lt;br /&gt;7 1000100&lt;br /&gt;8 1001000&lt;br /&gt;9 1110100&lt;br /&gt;&lt;br /&gt;各位元0為白，1為黑。&lt;br /&gt;&lt;br /&gt;7. 檢查碼計算方式為1000減去前12碼之奇數碼和與偶數碼和*3後，除以10取餘數。假設各碼依次為ABCDEFGHIJKLM，則M = (1000 - (A+C+E+G+I+K) - (B+D+F+H+J+L)*3) % 10。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;（三）EAN-8碼&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;EAN-8碼為EAN-13碼的簡化型，除了少掉了廠商代碼外，其餘大致和EAN-13碼相同，其編碼特性如下：&lt;br /&gt;&lt;br /&gt;1. 資料只能為0～9之數字計7個，連同檢查碼共8碼。資料中包括國家代碼3碼、產品代碼5碼。&lt;br /&gt;2. 編碼結構為〔護線＋４個左資料碼＋中線＋３個資料碼＋檢查碼＋護線〕，共佔67條線。其中在畫線時，護線和中線在下方均略長於資料碼，以便肉眼能明顯區分，但對於條碼機閱讀時並無差異。&lt;br /&gt;3. 首碼不再隱藏於編碼方式，因此實際編出8碼。左資料一律以A組方式編碼，右資料編碼方式同EAN-13碼（請參閱EAN-13碼）。&lt;br /&gt;4. 檢查碼為1000減去前7碼之奇數碼和*3與偶數碼和後，除以10取餘數。假設各碼依次為ABCDEFGH，則&lt;br /&gt;H = (1000 - (A+C+E+G)*3 - (B+D+F)) % 10。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;（四）UPC-A碼&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;UPC-A碼（Universal Product Code，統一商品條碼）為1973年由美國超級市場公會所發展出來的條碼系統，適用於加拿大以及北美等地區，亦為EAN碼的前身，因此和EAN碼極為相似。UPC-A碼共有13碼，除了最後一個檢查碼外，還包括了旗碼2碼、廠商代碼5碼、產品代碼5碼。其中旗碼第一碼固定為0，第二碼用以表示商品的種類。整個UPC-A的編碼結構和EAN-13碼是完全相同的，只是首碼必須固定為0，因此在編碼上較EAN-13碼簡單。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;（五）UPC-E碼&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;UPC-E碼為UPC-A碼的簡化型，共計有8碼，係由某些特殊的UPC-A碼簡化而來。由於並非所有UPC-A碼均能簡化成UPC-E碼，因此可簡化的UPC-A碼有一定的限制，這些限制為：&lt;br /&gt;&lt;br /&gt;1. 旗碼＝00，廠商代碼＝xx000，產品代碼＝00xxx&lt;br /&gt;2. 旗碼＝00，廠商代碼＝xx100，產品代碼＝00xxx&lt;br /&gt;3. 旗碼＝00，廠商代碼＝xx200，產品代碼＝00xxx&lt;br /&gt;4. 旗碼＝00，廠商代碼＝xxx00，產品代碼＝000xx&lt;br /&gt;5. 旗碼＝00，廠商代碼＝xxxx0，產品代碼＝0000x&lt;br /&gt;6. 旗碼＝00，廠商代碼＝xxxxx，產品代碼＝00005～00009&lt;br /&gt;&lt;br /&gt;假設UPC-A各碼依次為ABCDEFGHIJKLM，則符合上述這些限制的UPC-A碼，可依次簡化成下列對應的UPC-E碼：&lt;br /&gt;&lt;br /&gt;1. 0CDJKL0M&lt;br /&gt;2. 0CDJKL1M&lt;br /&gt;3. 0CDJKL2M&lt;br /&gt;4. 0CDEKL3M&lt;br /&gt;5. 0CDEFL4M&lt;br /&gt;6. 0CDEFGLM&lt;br /&gt;&lt;br /&gt;以下則為UPC-E碼的編碼特性：&lt;br /&gt;&lt;br /&gt;1. 資料只能為0～9之數字計7個，連同檢查碼共8碼。各資料代表意義如前所述。&lt;br /&gt;2. 編碼方式為〔左護線＋６個資料碼＋右護線〕，共佔51條線。由於第一碼固定為0，不列入編碼，而檢查碼隱含在編碼方式中，因此實際只編出6碼。&lt;br /&gt;3. 資料碼依檢查碼有A、B兩組不同的編碼方式，各檢查碼對應的資料編碼方式如下：&lt;br /&gt;&lt;br /&gt;0 BBBAAA&lt;br /&gt;1 BBABAA&lt;br /&gt;2 BBAABA&lt;br /&gt;3 BBAAAB&lt;br /&gt;4 BABBAA&lt;br /&gt;5 BAABBA&lt;br /&gt;6 BAAABB&lt;br /&gt;7 BABABA&lt;br /&gt;8 BABAAB&lt;br /&gt;9 BAABAB&lt;br /&gt;&lt;br /&gt;A、B兩組編碼方式同EAN-13碼。&lt;br /&gt;&lt;br /&gt;4. 檢查碼計算方式如下：&lt;br /&gt;&lt;br /&gt;0ABCDEFM : M = (1000 - (A+D+F) - (B+C+E)*3) % 10，F = 0～2&lt;br /&gt;0ABCDE3M : M = (1000 - (A+C+D) - (B+E)*3) % 10&lt;br /&gt;0ABCDE4M : M = (1000 - (A+C) - (B+D+E)*3) % 10&lt;br /&gt;0ABCDEFM : M = (1000 - (A+C+E) - (B+D+F)*3) % 10，F = 5～9&lt;br /&gt;&lt;br /&gt;5. 左護線固定為101，右護線固定為010101，以上各位元0為白，1為黑。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;（六）交錯式25碼&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;交錯式25碼（Interleaved 2 of 5）發展於1972年，為最早出現的條碼系統。由於編碼方式係採2個資料交錯放置，且每個資料有5條線，故命令為交錯式25碼。其編碼特性如下：&lt;br /&gt;&lt;br /&gt;1. 資料只能為0～9之數字，長度不限，但必須是偶數個，不足時最前面必須多補一個0。&lt;br /&gt;2. 編碼結構為〔起始碼＋資料碼＋終止碼〕。&lt;br /&gt;3. 編碼資料如下，每碼有5條線，其中2條為粗，故每碼各佔7線，各位元值0為細，1為粗：&lt;br /&gt;&lt;br /&gt;0 00110&lt;br /&gt;1 10001&lt;br /&gt;2 01001&lt;br /&gt;3 11000&lt;br /&gt;4 00101&lt;br /&gt;5 10100&lt;br /&gt;6 01100&lt;br /&gt;7 00011&lt;br /&gt;8 10010&lt;br /&gt;9 01010&lt;br /&gt;&lt;br /&gt;實際編碼時，以2個資料之位元交錯放置，也就是第一個資料放一個位元，然後輪第二個資料放一個位元，再輪回第一個資料放一位元，如此循環下去。編碼完畢後，在奇數位者一律為黑（要畫線），偶數位者一律為白（不畫線）。&lt;br /&gt;&lt;br /&gt;4. 起始碼固定為0000，終止碼固定為100。依前述奇數位為黑、偶數位為白、0為細、1為粗，則起始碼為細黑、細白、細黑、細白，而終止碼為粗黑、細白、細黑。&lt;br /&gt;&lt;br /&gt;除了交錯式25碼外，也有沒進行交錯排列處理的標準式25碼（Standard 2 of 5），但使用上沒有交錯式25碼普及。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;（七）CODABAR碼（又稱NW-7碼）&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;CODABAR碼發展於1972年，但直到1977年才正式被使用。由於發展年份和交錯式25碼相近，因此編碼方式有許多地方頗相似。其編碼特性如下：&lt;br /&gt;&lt;br /&gt;1. 資料只能為數字0～9，以及/+-*$.:等7個特殊符號，長度最長為32碼資料。&lt;br /&gt;2. 編碼結構為〔起始碼＋資料碼＋終止碼〕，其中起始碼和終止碼必須為英文字母A～D。&lt;br /&gt;3. 編碼資料如下，每碼有7條線，長度不一，各位元奇數位為黑，偶數位為白，0為細，1為粗：&lt;br /&gt;&lt;br /&gt;0 0000011&lt;br /&gt;1 0000110&lt;br /&gt;2 0001001&lt;br /&gt;3 1100000&lt;br /&gt;4 0010010&lt;br /&gt;5 1000010&lt;br /&gt;6 0100001&lt;br /&gt;7 0100100&lt;br /&gt;8 0110000&lt;br /&gt;9 1001000&lt;br /&gt;$ 0011000&lt;br /&gt;- 0001100&lt;br /&gt;A 0011010&lt;br /&gt;B 0101001&lt;br /&gt;C 0001011&lt;br /&gt;D 0001110&lt;br /&gt;+ 0010101&lt;br /&gt;. 1010100&lt;br /&gt;: 1000101&lt;br /&gt;/ 1010001&lt;br /&gt;* 1010101&lt;br /&gt;&lt;br /&gt;各資料碼之間必須再空開一條白線。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;（八）128碼&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;128碼是個功能強大卻頗複雜的條碼系統，約於1981年開始被採用。其編碼特性如下：&lt;br /&gt;&lt;br /&gt;1. 資料可為ASCII 0～127之任何字元，長度最長30個資料。&lt;br /&gt;2. 編碼結構為〔起始碼＋資料碼＋終止碼＋檢查碼〕，其中檢查碼可有可無，通常不加。&lt;br /&gt;3. 有三類編碼方式：&lt;br /&gt;&lt;br /&gt;A類：ASCII 0～95。&lt;br /&gt;B類：ASCII 32～127。&lt;br /&gt;C類：數字00～99。&lt;br /&gt;&lt;br /&gt;其中ASCII 0～31對應編碼索引為64～95，ASCII 32～95對應編碼索引為0～63，ASCII 96～127對應編碼索引為64～95，C類數字直接對應至編碼索引。各類尚有特殊編碼索引值如下：&lt;br /&gt;&lt;br /&gt;A類：F3=96、F2=97、Shift=98、Code C=99、Code B=100、F4=101、F1=102&lt;br /&gt;B類：F3=96、F2=97、Shift=98、Code C=99、F4=100、Code A=101、F1=102&lt;br /&gt;C類：Code B=100、Code A=101、F1=102&lt;br /&gt;&lt;br /&gt;4. 起始碼有11線，用以決定一開始的編碼類型，各類型的起始碼為：&lt;br /&gt;&lt;br /&gt;A類 = 11010000100&lt;br /&gt;B類 = 11010010000&lt;br /&gt;C類 = 11010011100&lt;br /&gt;&lt;br /&gt;終止碼有13線，固定為1100011101011。&lt;br /&gt;&lt;br /&gt;5. 各編碼索引對應之編碼值如下，0表白線，1表黑線，各佔11條線：&lt;br /&gt;&lt;br /&gt;00 11011001100&lt;br /&gt;01 11001101100&lt;br /&gt;02 11001100110&lt;br /&gt;03 10010011000&lt;br /&gt;04 10010001100&lt;br /&gt;05 10001001100&lt;br /&gt;06 10011001000&lt;br /&gt;07 10011000100&lt;br /&gt;08 10001100100&lt;br /&gt;09 11001001000&lt;br /&gt;10 11001000100&lt;br /&gt;11 11000100100&lt;br /&gt;12 10110011100&lt;br /&gt;13 10011011100&lt;br /&gt;14 10011001110&lt;br /&gt;15 10111001100&lt;br /&gt;16 10011101100&lt;br /&gt;17 10011100110&lt;br /&gt;18 11001110010&lt;br /&gt;19 11001011100&lt;br /&gt;20 11001001110&lt;br /&gt;21 11011100100&lt;br /&gt;22 11001110100&lt;br /&gt;23 11101101110&lt;br /&gt;24 11101001100&lt;br /&gt;25 11100101100&lt;br /&gt;26 11100100110&lt;br /&gt;27 11101100100&lt;br /&gt;28 11100110100&lt;br /&gt;29 11100110010&lt;br /&gt;30 11011011000&lt;br /&gt;31 11011000110&lt;br /&gt;32 11000110110&lt;br /&gt;33 10100011000&lt;br /&gt;34 10001011000&lt;br /&gt;35 10001000110&lt;br /&gt;36 10110001000&lt;br /&gt;37 10001101000&lt;br /&gt;38 10001100010&lt;br /&gt;39 11010001000&lt;br /&gt;40 11000101000&lt;br /&gt;41 11000100010&lt;br /&gt;42 10110111000&lt;br /&gt;43 10110001110&lt;br /&gt;44 10001101110&lt;br /&gt;45 10111011000&lt;br /&gt;46 10111000110&lt;br /&gt;47 10001110110&lt;br /&gt;48 11101110110&lt;br /&gt;49 11010001110&lt;br /&gt;50 11000101110&lt;br /&gt;51 11011101000&lt;br /&gt;52 11011100010&lt;br /&gt;53 11011101110&lt;br /&gt;54 11101011000&lt;br /&gt;55 11101000110&lt;br /&gt;56 11100010110&lt;br /&gt;57 11101101000&lt;br /&gt;58 11101100010&lt;br /&gt;59 11100011010&lt;br /&gt;60 11101111010&lt;br /&gt;61 11001000010&lt;br /&gt;62 11110001010&lt;br /&gt;63 10100110000&lt;br /&gt;64 10100001100&lt;br /&gt;65 10010110000&lt;br /&gt;66 10010000110&lt;br /&gt;67 10000101100&lt;br /&gt;68 10000100110&lt;br /&gt;69 10110010000&lt;br /&gt;70 10110000100&lt;br /&gt;71 10011010000&lt;br /&gt;72 10011000010&lt;br /&gt;73 10000110100&lt;br /&gt;74 10000110010&lt;br /&gt;75 11000010010&lt;br /&gt;76 11001010000&lt;br /&gt;77 11110111010&lt;br /&gt;78 11000010100&lt;br /&gt;79 10001111010&lt;br /&gt;80 10100111100&lt;br /&gt;81 10010111100&lt;br /&gt;82 10010011110&lt;br /&gt;83 10111100100&lt;br /&gt;84 10011110100&lt;br /&gt;85 10011110010&lt;br /&gt;86 11110100100&lt;br /&gt;87 11110010100&lt;br /&gt;88 11110010010&lt;br /&gt;89 11011011110&lt;br /&gt;90 11011110110&lt;br /&gt;91 11110110110&lt;br /&gt;92 10101111000&lt;br /&gt;93 10100011110&lt;br /&gt;94 10001011110&lt;br /&gt;95 10111101000&lt;br /&gt;96 10111100010&lt;br /&gt;97 11110101000&lt;br /&gt;98 11110100010&lt;br /&gt;99 10111011110&lt;br /&gt;100 10111011110&lt;br /&gt;101 11101011110&lt;br /&gt;102 11110101110&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6. 檢查碼的計算方式103加上各資料的編碼索引值乘上位置值的總和，再除以103取餘數。假設資料編碼索引值依次為ABC，則檢查碼 = (103 + A*1 + B*2 + C*3) % 103。計算出檢查碼後，即視為編碼索引值進行編碼。&lt;br /&gt;7. 特殊資料碼意義為：&lt;br /&gt;&lt;br /&gt;F1～F4 = 同按下F1～F4鍵&lt;br /&gt;Shift = 同按下Shift鍵&lt;br /&gt;Code A = 編碼類別改成A類&lt;br /&gt;Code B = 編碼類別改成B類&lt;br /&gt;Code C = 編碼類別改成C類&lt;br /&gt;&lt;br /&gt;由於128碼可以中途轉變編碼類別，因此同一個資料可能有多個編碼方式，如何將編碼長度縮到最小，便成為一項考驗。以下係我們經過分析後，所得到的演算法，可使得編碼長度縮到最小：&lt;br /&gt;&lt;br /&gt;*** 決定起始碼&lt;br /&gt;&lt;br /&gt;1. 一開始數字連續4個以上時，使用C類。&lt;br /&gt;2. 先遇上ASCII 0～31者，使用A類，先遇上ASCII 96～127者，使用B類。都遇不上，一律採用A類。&lt;br /&gt;&lt;br /&gt;*** 中途轉碼考慮&lt;br /&gt;&lt;br /&gt;A、B類 -&lt;br /&gt;&lt;br /&gt;1. 數字6個以上時，改用C類。&lt;br /&gt;2. 遇上ASCII 0～31者，改用A類，遇上ASCII 96～127，改用B類。&lt;br /&gt;&lt;br /&gt;C類 -&lt;br /&gt;&lt;br /&gt;3. 只剩0～1個數字時，往後找2的情況，若無，一律使用A類。&lt;br /&gt;4. 遇上ASCII 0～31者，改用A類，遇上ASCII 96～127，改用B類。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6758260041926380909-1894113882622232379?l=sean.o4u.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sean.o4u.com/feeds/1894113882622232379/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://sean.o4u.com/2009/04/blog-post.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/1894113882622232379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/1894113882622232379'/><link rel='alternate' type='text/html' href='http://sean.o4u.com/2009/04/blog-post.html' title='[轉載] 一維條碼'/><author><name>Sean Lin</name><uri>http://www.blogger.com/profile/16994068867619037922</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13467641485652785238'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6758260041926380909.post-2615057101131395058</id><published>2009-04-20T16:10:00.000+08:00</published><updated>2009-04-20T16:14:26.306+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='utf8'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP'/><category scheme='http://www.blogger.com/atom/ns#' term='unicode'/><category scheme='http://www.blogger.com/atom/ns#' term='ADODB.Stream'/><category scheme='http://www.blogger.com/atom/ns#' term='轉碼'/><category scheme='http://www.blogger.com/atom/ns#' term='big5'/><title type='text'>在ASP將字串轉成 Big5 位元串以十六進制表示</title><content type='html'>古老的 ASP 程式通常都在 ANSI 模式下。&lt;br /&gt;&lt;br /&gt;近年來已朝向 Unicode (UTF-8) 的環境開發&lt;br /&gt;在第一行加入: &lt;%@LANGUAGE="VBScript" CODEPAGE="65001" %&gt;&lt;br /&gt;可以讓程式碼、語言核心、HTTP IO 都使用 Unicode 了。&lt;br /&gt;&lt;br /&gt;如果有一個特殊狀況要把 Unicode 網頁的文字轉回去 Big5 怎麼辦呢?&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;'=== 將(Unicode)字串轉成 Big5 位元串以十六進制表示&lt;br /&gt;Private Function HexBig5(strData)&lt;br /&gt;Dim o,B,I,out&lt;br /&gt;Set o = Server.CreateObject("ADODB.Stream")&lt;br /&gt;&lt;br /&gt;o.Charset = "big5"&lt;br /&gt;o.Mode = 3 '1讀 2寫 3讀寫&lt;br /&gt;o.Type = 2 '1二進制 2純文字&lt;br /&gt;o.Open&lt;br /&gt;o.WriteText strData&lt;br /&gt;&lt;br /&gt;'o.SaveToFile Server.MapPath("t.txt"),2 '測試輸出文字檔&lt;br /&gt;o.Position = 0 '從頭開始&lt;br /&gt;o.Charset = "big5"&lt;br /&gt;o.Type = 1&lt;br /&gt;B = o.Read&lt;br /&gt;&lt;br /&gt;out = ""&lt;br /&gt;For I= 1 To o.size&lt;br /&gt;  out = out &amp;amp; HexB(AscB(MidB(B,I,1)))&lt;br /&gt;Next&lt;br /&gt;HexBig5 = out&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Private Function HexB(value)&lt;br /&gt;hexB = Right("0" &amp;amp; HEX(value),2)&lt;br /&gt;End Function&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6758260041926380909-2615057101131395058?l=sean.o4u.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sean.o4u.com/feeds/2615057101131395058/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://sean.o4u.com/2009/04/asp-big5.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/2615057101131395058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/2615057101131395058'/><link rel='alternate' type='text/html' href='http://sean.o4u.com/2009/04/asp-big5.html' title='在ASP將字串轉成 Big5 位元串以十六進制表示'/><author><name>Sean Lin</name><uri>http://www.blogger.com/profile/16994068867619037922</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13467641485652785238'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6758260041926380909.post-5593958946151030638</id><published>2008-12-01T15:43:00.000+08:00</published><updated>2009-10-25T10:08:54.768+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='unicode'/><title type='text'>溢出字元</title><content type='html'>上篇討論到使用 Windows 內部的轉碼、轉字功能，事事不是那麼如意。Big5 碼並不是什麼字都有，Windows API 的轉碼功能遇到不能轉的字會變成「?」字元。&lt;br /&gt;例如:&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(51, 51, 255);"&gt;print ToANSI("陶喆的歌");&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;輸出 big5碼結果是:&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(51, 51, 255);"&gt;陶?的歌&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;於是 Sean 再寫一個函式 ToHTML，輸出結果為:&lt;br /&gt;&lt;br /&gt; &lt;span style="color: rgb(51, 51, 255);"&gt; 陶&amp;amp;#21894;的歌&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;完整的原始程式在 &lt;a href="http://code.google.com/p/sean/source/browse/trunk/Perl/Win32Encode.pm"&gt;這裡&lt;/a&gt;。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6758260041926380909-5593958946151030638?l=sean.o4u.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sean.o4u.com/feeds/5593958946151030638/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://sean.o4u.com/2008/11/blog-post.html#comment-form' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/5593958946151030638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/5593958946151030638'/><link rel='alternate' type='text/html' href='http://sean.o4u.com/2008/11/blog-post.html' title='溢出字元'/><author><name>Sean Lin</name><uri>http://www.blogger.com/profile/16994068867619037922</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13467641485652785238'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6758260041926380909.post-447508475093236714</id><published>2008-11-26T15:10:00.000+08:00</published><updated>2009-10-25T10:09:20.708+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='unicode'/><title type='text'>在 Windows  Perl 5.8 下的簡繁轉字</title><content type='html'>續&lt;a href="http://www.blogger.com/2008/11/windows-perl-58xxx-unicode.html"&gt;上篇文章&lt;/a&gt;使用 Windows 系統的 API 在 Unicode 與 ANSI 字元轉換。接下來就是簡體與繁的互換了。&lt;br /&gt;&lt;br /&gt;雖然在 Perl 中可以 use Encode::HanConvert 來轉換。但還是同樣的問題，若要打包成執行檔會包出一大包怪物。在速度效能上的考量，Sean 還是使用 Windows API 來轉換。&lt;br /&gt;&lt;br /&gt;在 GBK 字集中包含所有簡體與繁體字，所以 Sean 的程式都先轉成 GBK 再呼叫系統的 LCMapString。&lt;br /&gt;&lt;br /&gt;這個函不該稱「簡繁轉碼」，應該稱「簡繁轉『字』」。因為編碼並沒有改變。函式傳入的字串使用 Unicode (Perl預設UTF8)，回傳值也是 Unicode 字串，僅做簡繁字互轉。&lt;br /&gt;&lt;br /&gt;Sean 已寫成 Perl 模組，&lt;a href="http://code.google.com/p/sean/source/browse/trunk/Perl/Win32Encode.pm" target="_new"&gt;完整的程式在這裡&lt;/a&gt;。&lt;br /&gt;&lt;br /&gt;題外話，簡繁體字並非一對一的關係唷，因為無法100%逆轉。&lt;br /&gt;例如繁體「干」「幹」「乾」簡體皆為「干」，再轉回繁體還是「干」。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;use Encode qw(encode decode);&lt;br /&gt;use Win32::API;&lt;br /&gt;&lt;br /&gt;use utf8;&lt;br /&gt;use strict;&lt;br /&gt;&lt;br /&gt;use constant LOCALE_SYSTEM_DEFAULT =&amp;gt; 0x0800;&lt;br /&gt;use constant LANG_CHINESE_SIMPLIFIED =&amp;gt; 0x0804;&lt;br /&gt;use constant LANG_CHINESE_TRADITIONAL =&amp;gt; 0x0404;&lt;br /&gt;use constant LCMAP_SIMPLIFIED_CHINESE =&amp;gt; 0x02000000;&lt;br /&gt;use constant LCMAP_TRADITIONAL_CHINESE =&amp;gt; 0x04000000;&lt;br /&gt;&lt;br /&gt;# Perl 的 Unicode 字串正體中文轉簡體中文&lt;br /&gt;sub ToCHS {&lt;br /&gt;  my $source = ToANSI(shift,'GBK');&lt;br /&gt;  my $len = length($source);&lt;br /&gt;  my $target = "\0" x $len;&lt;br /&gt;&lt;br /&gt;  $API_LCMapString = new Win32::API('kernel32','LCMapString','NNPNPN','N') unless defined $API_LCMapString;&lt;br /&gt;&lt;br /&gt;  my $ret = $API_LCMapString-&amp;gt;Call(LANG_CHINESE_SIMPLIFIED,LCMAP_SIMPLIFIED_CHINESE,$source,$len,$target,$len);&lt;br /&gt;  return undef unless $ret;&lt;br /&gt;&lt;br /&gt;  return(ToUnicode($target,'GBK'));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Perl 的 Unicode 字串簡體中文轉正體中文&lt;br /&gt;sub ToCHT {&lt;br /&gt;  my $source = ToANSI(shift,'GBK');&lt;br /&gt;  my $len = length($source);&lt;br /&gt;  my $target = "\0" x $len;&lt;br /&gt;&lt;br /&gt;  $API_LCMapString = new Win32::API('kernel32','LCMapString','NNPNPN','N') unless defined $API_LCMapString;&lt;br /&gt;&lt;br /&gt;  my $ret = $API_LCMapString-&amp;gt;Call(LANG_CHINESE_SIMPLIFIED,LCMAP_TRADITIONAL_CHINESE,$source,$len,$target,$len);&lt;br /&gt;  return undef unless $ret;&lt;br /&gt;&lt;br /&gt;  return(ToUnicode($target,'GBK'));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6758260041926380909-447508475093236714?l=sean.o4u.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sean.o4u.com/feeds/447508475093236714/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://sean.o4u.com/2008/11/windows-perl-58-lcmapstring.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/447508475093236714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/447508475093236714'/><link rel='alternate' type='text/html' href='http://sean.o4u.com/2008/11/windows-perl-58-lcmapstring.html' title='在 Windows  Perl 5.8 下的簡繁轉字'/><author><name>Sean Lin</name><uri>http://www.blogger.com/profile/16994068867619037922</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13467641485652785238'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6758260041926380909.post-3239153353412895083</id><published>2008-11-20T14:56:00.000+08:00</published><updated>2009-10-25T10:09:38.337+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='unicode'/><title type='text'>在 Windows  Perl 5.8 中 Unicode / ANSI 互轉</title><content type='html'>在 Perl 5.8 中使用字元集轉碼功能通常 use Encode。若在 Windows 下使用 PerlApp 之類的工具，將程式包成獨立的執行檔，通常會包出很龐大的執行檔。因為裡面包含著不小的轉碼表。&lt;br /&gt;&lt;br /&gt;例如 encode 用到 big5 至少要 use Encode::TW，這麼一來檔案至少膨脹了好幾百K。而且你還無法預期不只有 TW 或許 CN, JP.... 都有可能用到。&lt;br /&gt;&lt;br /&gt;Sean 寫了一個模組呼叫 Windows API 來轉碼，不使用 Perl 裡面的。&lt;br /&gt;當然只能在 Windows 上跑，但可以將 Perl 程式包出較小的執行檔。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;使用時請注意，如果程式碼中有 "中文字串"，您的原始碼文字檔必須是 UTF8 格式。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;package Win32Encode;&lt;br /&gt;&lt;br /&gt;use Encode qw(encode decode);&lt;br /&gt;use Win32::API;&lt;br /&gt;&lt;br /&gt;use utf8;&lt;br /&gt;use strict;&lt;br /&gt;&lt;br /&gt;use Exporter;&lt;br /&gt;&lt;br /&gt;use vars qw(&lt;br /&gt;$VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS&lt;br /&gt;%cp $API_MultiByteToWideChar $API_WideCharToMultiByte&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;$VERSION = '0.01';&lt;br /&gt;@ISA = qw(Exporter);&lt;br /&gt;@EXPORT = qw( ToUnicode ToANSI );&lt;br /&gt;@EXPORT_OK = qw( ToUnicode ToANSI );&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;%cp = qw( EBCDICCPUS 37 437 437 CP437 437 CSPC8 437 CODEPAGE437 437 IBM437 437&lt;br /&gt;ASMO708 708 DOS720 720 IBM737 737 CP500 775 IBM775 775 IBM850 850 IBM852 852&lt;br /&gt;CP852 852 IBM857 857 IBM861 861 DOS862 862 CP866 866 IBM866 866 IBM869 869&lt;br /&gt;CP870 870 ISO885911 874 DOS874 874 WINDOWS874 874 TIS620 874&lt;br /&gt;XEBCDICGREEKMODERN 875 MSKANJI 932 CSSHIFTJIS 932 CSWINDOWS31J 932&lt;br /&gt;XMSCP932 932 SHIFTJIS 932 XSJIS 932 CSISO58GB231280 936 GBK 936&lt;br /&gt;GB231280 936 CSGB2312 936 CHINESE 936 CNGB 936 ISOIR58 936 GB2312 936&lt;br /&gt;CSGB231280 936 KSC5601 949 KOREAN 949 KSC56011989 949 CSKSC56011987 949&lt;br /&gt;KSC56011987 949 ISOIR149 949 CSBIG5 950 BIG5 950 XXBIG5 950 CNBIG5 950&lt;br /&gt;CP1026 1026 XEBCDICCPUSEURO 1140 XEBCDICGERMANYEURO 1141&lt;br /&gt;XEBCDICDENMARKNORWAYEURO 1142 XEBCDICFINLANDSWEDENEURO 1143&lt;br /&gt;XEBCDICFRANCE 1143 XEBCDICITALYEURO 1144 XEBCDICSPAINEURO 1145&lt;br /&gt;XEBCDICUKEURO 1146 XEBCDICFRANCEEURO 1147 XEBCDICINTERNATIONALEURO 1148&lt;br /&gt;XEBCDICICELANDICEURO 1149 UNICODE 1200 UTF16 1200 UNICODEFFFE 1201&lt;br /&gt;WINDOWS1250 1250 XCP1250 1250 WINDOWS1251 1251 XCP1251 1251 ISO646US 1252&lt;br /&gt;WINDOWS1252 1252 ISO646IRV1991 1252 USASCII 1252 IBM819 1252 LATIN1 1252&lt;br /&gt;CP819 1252 XANSI 1252 ANSIX341986 1252 ISOIR6 1252 ISO885911987 1252 ASCII 1252&lt;br /&gt;ISOIR100 1252 US 1252 ANSIX341968 1252 CSASCII 1252 CP367 1252 ISO88591 1252&lt;br /&gt;IBM367 1252 WINDOWS1253 1253 WINDOWS1254 1254 ISOIR148 1254 ISO88599 1254&lt;br /&gt;LATIN5 1254 ISO885991989 1254 ISO88598I 1255 VISUAL 1255 WINDOWS1255 1255&lt;br /&gt;ISO88598 1255 WINDOWS1256 1256 CP1256 1256 WINDOWS1257 1257 WINDOWS1258 1258&lt;br /&gt;JOHAB 1361 MACINTOSH 10000 XMACJAPANESE 10001 XMACCHINESETRAD 10002&lt;br /&gt;XMACKOREAN 10003 XMACARABIC 10004 XMACHEBREW 10005 XMACGREEK 10006&lt;br /&gt;XMACCYRILLIC 10007 XMACCHINESESIMP 10008 XMACCE 10029 XMACICELANDIC 10079&lt;br /&gt;XMACTURKISH 10081 XCHINESECNS 20000 XCHINESEETEN 20002 XIA5 20105&lt;br /&gt;XIA5GERMAN 20106 XIA5SWEDISH 20107 XIA5NORWEGIAN 20108 ISOIR6US 20127&lt;br /&gt;XEBCDICGERMANY 20273 XEBCDICDENMARKNORWAY 20277 XEBCDICFINLANDSWEDEN 20278&lt;br /&gt;XEBCDICITALY 20280 XEBCDICSPAIN 20284 XEBCDICUK 20285&lt;br /&gt;XEBCDICJAPANESEKATAKANA 20290 XEBCDICARABIC 20420 XEBCDICGREEK 20423&lt;br /&gt;XEBCDICHEBREW 20424 XEBCDICKOREANEXTENDED 20833 XEBCDICTHAI 20838&lt;br /&gt;CSKOI8R 20866 KOI 20866 KOI8 20866 KOI8R 20866 XEBCDICICELANDIC 20871&lt;br /&gt;XEBCDICCYRILLICRUSSIAN 20880 XEBCDICTURKISH 20905&lt;br /&gt;XEBCDICCYRILLICSERBIANBULGARIAN 21025 KOI8U 21866 KOI8RU 21866 L1 28591&lt;br /&gt;CSISO 28591 L2 28592 ISOIR101 28592 ISO88592 28592 CSISOLATIN2 28592&lt;br /&gt;LATIN2 28592 ISO885921987 28592 ISO88593 28593 ISO885931988 28593&lt;br /&gt;ISOIR109 28593 LATIN3 28593 L3 28593 LATIN4 28594 ISO885941988 28594&lt;br /&gt;ISOIR110 28594 L4 28594 ISO88594 28594 CSISOLATIN4 28594 ISO88595 28595&lt;br /&gt;CYRILLIC 28595 ISOIR144 28595 CSISOLATIN5 28595 CSISOLATINCYRILLIC 28595&lt;br /&gt;ISO885951988 28595 ECMA114 28596 ISO885961987 28596 ARABIC 28596 ISOIR127 28596&lt;br /&gt;ISO88596 28596 CSISOLATINARABIC 28596 GREEK8 28597 ELOT928 28597&lt;br /&gt;ISO885971987 28597 CSISOLATINGREEK 28597 ISO88597 28597 ECMA118 28597&lt;br /&gt;ISOIR126 28597 GREEK 28597 HEBREW 28598 ISO885981988 28598&lt;br /&gt;CSISOLATINHEBREW 28598 ISOIR138 28598 L5 28599 L9 28605 LATIN9 28605&lt;br /&gt;ISO885915 28605 XEUROPA 29001 LOGICAL 38598 ISO2022JP 50221&lt;br /&gt;CSISO2022JP 50221 CSISO2022KR 50225 ISO2022KR 50225&lt;br /&gt;XEBCDICJAPANESEANDKANA 50930 XEBCDICJAPANESEANDUSCANADA 50931&lt;br /&gt;XEBCDICKOREANANDKOREANEXTENDED 50933 XEBCDICSIMPLIFIEDCHINESE 50935&lt;br /&gt;XEBCDICTRADITIONALCHINESE 50937 XEBCDICJAPANESEANDJAPANESELATIN 50939&lt;br /&gt;XEUC 51932 EUCJP 51932 XEUCJP 51932&lt;br /&gt;EXTENDEDUNIXCODEPACKEDFORMATFORJAPANESE 51932 CSEUCPKDFMTJAPANESE 51932&lt;br /&gt;EUCCN 51936 XEUCCN 51936 EUCKR 51949 CSEUCKR 51949 HZGB2312 52936&lt;br /&gt;XISCIIDE 57002 XISCIIBE 57003 XISCIITA 57004 XISCIITE 57005 XISCIIAS 57006&lt;br /&gt;XISCIIOR 57007 XISCIIKA 57008 XISCIIMA 57009 XISCIIGU 57010 XISCIIPA 57011&lt;br /&gt;CSUNICODE11UTF7 65000 XUNICODE20UTF7 65000 UNICODE11UTF7 65000 UTF7 65000&lt;br /&gt;XUNICODE20UTF8 65001 UTF8 65001 UNICODE20UTF8 65001 UNICODE11UTF8 65001);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# 使用 Windows API 互轉 ANSI 字元及 Perl Unicode 字串&lt;br /&gt;#&lt;br /&gt;#&lt;br /&gt;# 原始碼以 utf-8 儲存時&lt;br /&gt;# $ansi = ToANSI("中文字ABC\n"); # 相當於 encode("Big5","中文ABC") 傳回的 Big5 byte 型式&lt;br /&gt;# $unicode = ToUnicode($ansi);  # 轉成 Perl Unicode 字串&lt;br /&gt;#&lt;br /&gt;# 字元集參數預設為 CP_ACP(0) 即系統預設語言&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# 轉成多位元字元 (Perl 的 Unicode字串,[字元集])&lt;br /&gt;sub ToANSI {&lt;br /&gt;&lt;br /&gt; my($u8,$codepage) = @_;&lt;br /&gt; $codepage ||=0;&lt;br /&gt;&lt;br /&gt; unless($codepage =~ /^\d+$/) {&lt;br /&gt;    $codepage = uc($codepage);&lt;br /&gt;    $codepage =~ s/[^A-Z0-9]//g;&lt;br /&gt;    $codepage = (exists $cp{$codepage})?$cp{$codepage}:0;&lt;br /&gt; } &lt;br /&gt;&lt;br /&gt; my $u_len = length($u8);&lt;br /&gt; my $uni_str = encode("UCS-2LE",$u8);&lt;br /&gt;&lt;br /&gt; $API_WideCharToMultiByte = new Win32::API('kernel32','WideCharToMultiByte','NNPNPNPP','N') unless defined $API_WideCharToMultiByte;&lt;br /&gt;&lt;br /&gt; my $len = $API_WideCharToMultiByte-&gt;Call($codepage,0,$uni_str,$u_len,0,0,0,0);&lt;br /&gt; return undef unless $len;&lt;br /&gt;&lt;br /&gt; my $string = "\0" x $len;&lt;br /&gt;&lt;br /&gt; my $result = $API_WideCharToMultiByte-&gt;Call($codepage,0,$uni_str,$u_len,$string,$len,0,0);&lt;br /&gt; return undef unless $result;&lt;br /&gt;&lt;br /&gt; return($string);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# 轉成 Perl 的 Unicode 字串( ANSI字串,[字元集] )&lt;br /&gt;sub ToUnicode {&lt;br /&gt;&lt;br /&gt; my($string,$codepage) = @_;&lt;br /&gt; $codepage ||=0;&lt;br /&gt;&lt;br /&gt; unless($codepage =~ /^\d+$/) {&lt;br /&gt;    $codepage = uc($codepage);&lt;br /&gt;    $codepage =~ s/[^A-Z0-9]//g;&lt;br /&gt;    $codepage = (exists $cp{$codepage})?$cp{$codepage}:0;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; $API_MultiByteToWideChar = new Win32::API('kernel32','MultiByteToWideChar','NNPNPN','N') unless defined $API_MultiByteToWideChar;&lt;br /&gt;&lt;br /&gt; my $len = $API_MultiByteToWideChar-&gt;Call($codepage,0,$string,length($string),0,0);&lt;br /&gt; return undef unless $len;&lt;br /&gt;&lt;br /&gt; my $ustring = "\0" x ($len*2);&lt;br /&gt;&lt;br /&gt; my $result = $API_MultiByteToWideChar-&gt;Call($codepage,0,$string,length($string),$ustring,$len);&lt;br /&gt; return undef unless $result;&lt;br /&gt;&lt;br /&gt; return decode("UCS-2LE",$ustring);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;1;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;題外話。為了更減輕打包出來的大小，C:\Perl\lib\unicore 目錄可以只剩下列檔案:&lt;br /&gt;&lt;br /&gt;Canonical.pl&lt;br /&gt;Exact.pl&lt;br /&gt;PVA.pl&lt;br /&gt;lib\gc_sc\Digit.pl&lt;br /&gt;lib\gc_sc\SpacePer.pl&lt;br /&gt;lib\gc_sc\Word.pl&lt;br /&gt;To\Digit.pl&lt;br /&gt;To\Fold.pl&lt;br /&gt;To\Lower.pl&lt;br /&gt;To\Title.pl&lt;br /&gt;To\Upper.pl&lt;br /&gt;&lt;br /&gt;這只是通常的情況，保險一點修改 C:\Perl\lib\utf8_heavy.pl 裡的 DEBUG 為 1。&lt;br /&gt;把自己的程式跑一遍，看看有沒有缺少哪個 unicore 裡的檔案。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6758260041926380909-3239153353412895083?l=sean.o4u.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sean.o4u.com/feeds/3239153353412895083/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://sean.o4u.com/2008/11/windows-perl-58xxx-unicode.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/3239153353412895083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/3239153353412895083'/><link rel='alternate' type='text/html' href='http://sean.o4u.com/2008/11/windows-perl-58xxx-unicode.html' title='在 Windows  Perl 5.8 中 Unicode / ANSI 互轉'/><author><name>Sean Lin</name><uri>http://www.blogger.com/profile/16994068867619037922</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13467641485652785238'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6758260041926380909.post-3203780792782877410</id><published>2008-10-20T01:32:00.004+08:00</published><updated>2010-02-21T02:00:53.607+08:00</updated><title type='text'>讓 Blogger 的意見回應可以有回覆</title><content type='html'>&lt;blockquote&gt;新方法改起來比較容易囉，見 &lt;a href="http://s.o4u.com/host/blog/ar.js"&gt; ar.js &lt;/a&gt; 檔案。&lt;br /&gt;以下文章都是舊方法。(02/2010)&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Blogger 中的張點的意見(回應)都沒有「作者回覆」的功能，剛剛 hack 一下... 終於有了。&lt;br /&gt;曾看過其他解決方案，但要申請第三方留言版來外掛。&lt;br /&gt;我的方法不用另外申請，直使用 Blogger 資料庫。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8KAZQJUgOM/ShUPvnburGI/AAAAAAAADYY/1OhGLcuYlsY/s1600-h/3.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 305px; height: 169px;" src="http://4.bp.blogspot.com/_T8KAZQJUgOM/ShUPvnburGI/AAAAAAAADYY/1OhGLcuYlsY/s400/3.jpg" alt="" id="BLOGGER_PHOTO_ID_5338190244031147106" border="0" /&gt;&lt;/a&gt;版面配置 → 修改 HTML → 勾「展開小裝置範本」&lt;br /&gt;「下載完整範本」後，用習慣的編輯器來改。&lt;br /&gt;&lt;br /&gt;修改後再上傳。最好是能把最原始範本保留一份起來，免得改錯了來找我。&lt;br /&gt;&lt;blockquote&gt;注意，每個人的 Template 或許不同。&lt;span style="color: rgb(255, 0, 0);"&gt;紅色為新增部份。&lt;/span&gt;&lt;pre   style=";font-family:Tahoma;font-size:8pt;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;function authorReply(CID) {&lt;br /&gt;var strBody = document.getElementById(CID).innerHTML.replace(/Re:\s*.+\s*&amp;amp;amp;lt;(\d+)&amp;amp;amp;gt;\s*&amp;amp;lt;BR\/?&amp;amp;gt;/i,&amp;amp;#39;&amp;amp;#39;);&lt;br /&gt;var strOut = &amp;amp;quot;&amp;lt;div style='background-color: bisque; padding: 4px'&amp;gt;&amp;lt;b&amp;gt;作者回覆&amp;lt;/b&amp;gt;&amp;amp;#65306;&amp;lt;br/&amp;gt;&amp;amp;quot;+strBody+&amp;amp;#39;&amp;lt;/div&amp;gt;&amp;lt;p/&amp;gt;&amp;amp;#39;;&lt;br /&gt;if(RegExp.$1)&lt;br /&gt;document.getElementById(&amp;amp;#39;RID&amp;amp;#39;+RegExp.$1).innerHTML = strOut;&lt;br /&gt;else&lt;br /&gt;document.write(strOut);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function replyEmbedComment(CN,CID) {&lt;br /&gt;var url = document.getElementById(&amp;amp;#39;comment-editor-src&amp;amp;#39;).href.replace(/-iframe/,'');&lt;br /&gt;url += &amp;amp;quot;&amp;amp;amp;postBody=Re:+&amp;amp;quot;+escape(CN)+&amp;amp;quot;+&amp;amp;lt;&amp;amp;quot;+CID+&amp;amp;quot;&amp;amp;gt;%0D%0A&amp;amp;quot;;&lt;br /&gt;location.href = url;&lt;br /&gt;}&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;dl id='comments-block'&amp;gt;&lt;br /&gt;&amp;lt;b:loop values='data:post.comments' var='comment'&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;b:if cond='data:comment.author == data:post.author'&lt;/span&gt;&lt;span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &amp;lt;div expr:id='&amp;amp;quot;CID&amp;amp;quot; + data:comment.id' style='display:none'&amp;gt;&amp;lt;data:comment.body/&amp;gt; &amp;lt;span style='font: 7pt Arial; color:#8a8a8a'&amp;gt;(&amp;lt;data:comment.timestamp/&amp;gt;)&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;lt;b:include data='comment' name='commentDeleteIcon'/&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;authorReply(&amp;amp;quot;CID&amp;lt;data:comment.id/&amp;gt;&amp;amp;quot;);&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;b:else/&amp;gt;&lt;br /&gt;&lt;/span&gt;  &amp;lt;dt expr:class='&amp;amp;quot;comment-author &amp;amp;quot; + data:comment.authorClass' expr:id='data:comment.anchorName'&amp;gt;&lt;br /&gt;&amp;lt;a expr:name='data:comment.anchorName'/&amp;gt;&lt;br /&gt;&amp;lt;b:if cond='data:comment.authorUrl'&amp;gt;&lt;br /&gt;&amp;lt;a expr:href='data:comment.authorUrl' rel='nofollow'&amp;gt;&amp;lt;data:comment.author/&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;b:else/&amp;gt;&lt;br /&gt;&amp;lt;data:comment.author/&amp;gt;&lt;br /&gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;&amp;lt;data:commentPostedByMsg/&amp;gt;&lt;br /&gt;&amp;lt;/dt&amp;gt;&lt;br /&gt;&amp;lt;dd class='comment-body'&amp;gt;&lt;br /&gt;&amp;lt;b:if cond='data:comment.isDeleted'&amp;gt;&lt;br /&gt;&amp;lt;span class='deleted-comment'&amp;gt;&amp;lt;data:comment.body/&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;lt;b:else/&amp;gt;&lt;br /&gt;&amp;lt;p&amp;gt;&amp;lt;data:comment.body/&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;&amp;lt;dd class='comment-footer'&amp;gt;&lt;br /&gt;&amp;lt;span class='comment-timestamp'&amp;gt;&lt;br /&gt;&amp;lt;a expr:href='data:comment.url' title='comment permalink'&amp;gt;&lt;br /&gt;&amp;lt;data:comment.timestamp/&amp;gt;&lt;br /&gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;b:include data='comment' name='commentDeleteIcon'/&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;span expr:class='&amp;amp;quot;item-control &amp;amp;quot; + data:comment.adminClass'&amp;gt;&lt;br /&gt;&amp;lt;b:if cond='data:post.embedCommentForm'&amp;gt;&lt;br /&gt;&amp;lt;a href='#comment-form' expr:onclick='&amp;amp;quot;replyEmbedComment(\&amp;amp;quot;&amp;amp;quot; + data:comment.author + &amp;amp;quot;\&amp;amp;quot;,\&amp;amp;quot;&amp;amp;quot; + data:comment.id + &amp;amp;quot;\&amp;amp;quot;)&amp;amp;quot;' style='font: 9pt Arial; color:#8a8a8a'&amp;gt;回&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;b:else/&amp;gt;&lt;br /&gt;&amp;lt;b:if cond='data:post.allowComments'&amp;gt;&lt;br /&gt;&amp;lt;a expr:href='data:post.addCommentUrl + &amp;amp;quot;&amp;amp;amp;postBody=Re%3A%20&amp;amp;quot; + data:comment.author + &amp;amp;quot;%20%3C&amp;amp;quot; + data:comment.id + &amp;amp;quot;%3E%0D%0A&amp;amp;quot;' expr:onclick='data:post.addCommentOnclick' style='font: 9pt Arial; color:#8a8a8a'&amp;gt;回&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;&amp;lt;/span&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;  &amp;lt;dd class='comment-reply'&amp;gt;&lt;br /&gt;&amp;lt;span expr:id='&amp;amp;quot;RID&amp;amp;quot; + data:comment.id'/&amp;gt;&lt;br /&gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;&amp;lt;/b:if&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/b:loop&amp;gt;&lt;br /&gt;&amp;lt;/dl&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8KAZQJUgOM/ShUMkDT_ZVI/AAAAAAAADYI/jndFHAwyeIo/s1600-h/1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 270px; height: 140px;" src="http://3.bp.blogspot.com/_T8KAZQJUgOM/ShUMkDT_ZVI/AAAAAAAADYI/jndFHAwyeIo/s400/1.jpg" alt="" id="BLOGGER_PHOTO_ID_5338186746821567826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;完成之後....&lt;br /&gt;在使用者登入的情況下在每篇「意見」後面都會多一個「回」字。用力點下去就對了!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8KAZQJUgOM/ShUMvCu_ahI/AAAAAAAADYQ/-OG2onjaCEc/s1600-h/2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 270px; height: 140px;" src="http://3.bp.blogspot.com/_T8KAZQJUgOM/ShUMvCu_ahI/AAAAAAAADYQ/-OG2onjaCEc/s400/2.jpg" alt="" id="BLOGGER_PHOTO_ID_5338186935644940818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;寫回覆內容時，自動出現的第一行要留起來唷。不然就會變成普通留言。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6758260041926380909-3203780792782877410?l=sean.o4u.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sean.o4u.com/feeds/3203780792782877410/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://sean.o4u.com/2008/10/blogger.html#comment-form' title='115 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/3203780792782877410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/3203780792782877410'/><link rel='alternate' type='text/html' href='http://sean.o4u.com/2008/10/blogger.html' title='讓 Blogger 的意見回應可以有回覆'/><author><name>Sean Lin</name><uri>http://www.blogger.com/profile/16994068867619037922</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13467641485652785238'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_T8KAZQJUgOM/ShUPvnburGI/AAAAAAAADYY/1OhGLcuYlsY/s72-c/3.jpg' height='72' width='72'/><thr:total>115</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6758260041926380909.post-3576837410973649230</id><published>2008-06-30T16:35:00.000+08:00</published><updated>2008-07-02T14:48:42.003+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦設定技巧'/><title type='text'>單一網卡同時設定「自動取得IP」及固定的「靜態IP」</title><content type='html'>&lt;span style="font-style: italic;"&gt;&lt;span style="color: rgb(51, 255, 255);font-family:arial;" &gt;Use a DHCP obtained IP address along with a static IP address at the same time.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;如果懶得找 Registry，請&lt;/span&gt;&lt;a style="font-weight: bold;" href="http://sean.tw.googlepages.com/SetDHCPAndStaticIP.rar"&gt;下載&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;小弟寫的 Script 程式來輔助設定。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;最近申請 Cable Modem 發現一個問題，雖然不用 PPPoE 撥接很方便。但是它提供的 DHCP 發給的 IP 都不在同網段，家裡區網的網芳互連很不方便。以下文章介紹如何在一片網卡上自定私有的靜態 IP，又同時「自動取得 IP 位址」(DHCP)。&lt;br /&gt;&lt;br /&gt;XP 的 Internet Protocll (TCP/IP) 網路設定「使用下列的 IP 位址」再按 [進階] 可以設定多個靜態 IP。但是如果使用「自動取得 IP 位址(DHCP)」的話將無法在同一片網卡上設定其他 IP。想要在同一片網卡上有兩個 IP(一個是 DHCP 發下來的，另一個是自定的)，使用 Regedit 修改註冊表即可。&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;先將 TCP/IP 設成「自動取得 IP 位址」。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;執行 Regedit 找&lt;br /&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\數字&lt;br /&gt;上面的「數字」可能好幾個，要找:&lt;br /&gt;&lt;br /&gt;Description = 你的網卡名稱&lt;br /&gt;ServiceName = {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} ← 長得像這樣。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;再找 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}]&lt;br /&gt;&lt;br /&gt;編輯 IPAddress 第二行加上你要增加的 IP 按 Enter 加換行。&lt;br /&gt;&lt;br /&gt;編輯 SubnetMask 第二行加上 255.255.255.0 (一般是這樣)，按 Enter 加換行。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;「區域連線」上按右鍵「停用」再「啟用」，看看 ipconfig /all 是不多了一組IP。&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;!!注意!! 一台電腦同時具有 WAN + LAN 時要特別注意網路安全。&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6758260041926380909-3576837410973649230?l=sean.o4u.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sean.o4u.com/feeds/3576837410973649230/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://sean.o4u.com/2008/06/xp-dhcp-ip-ip.html#comment-form' title='10 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/3576837410973649230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/3576837410973649230'/><link rel='alternate' type='text/html' href='http://sean.o4u.com/2008/06/xp-dhcp-ip-ip.html' title='單一網卡同時設定「自動取得IP」及固定的「靜態IP」'/><author><name>Sean Lin</name><uri>http://www.blogger.com/profile/16994068867619037922</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13467641485652785238'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6758260041926380909.post-7721406752087278377</id><published>2008-05-08T14:41:00.000+08:00</published><updated>2008-12-16T12:17:31.035+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='自製小程式'/><title type='text'>ID3批次編輯工具 - ID3 Batch Editing</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8KAZQJUgOM/SCKg0XJGVBI/AAAAAAAABX4/YTW91ZK9YO8/s1600-h/ID3xls.png"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_T8KAZQJUgOM/SCKg0XJGVBI/AAAAAAAABX4/YTW91ZK9YO8/s400/ID3xls.png" alt="" id="BLOGGER_PHOTO_ID_5197893741364794386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Edit your MP3 information the way you like in Office Excel!&lt;br /&gt;(Multilanguage support)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;■ 最新版本：&lt;/b&gt;v2.2&lt;p&gt;&lt;br /&gt;&lt;b&gt;■ 發佈日期：&lt;/b&gt;2008 年 8 月 28 日&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;b&gt;■ 介面語言：&lt;/b&gt;英文、簡體中文、正體中文&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;b&gt;■ 檔案下載：&lt;/b&gt;&lt;a href="http://search.cpatch.org/download/mp3/id3xls/id3xls23_install.exe"&gt;id3xls23a_install.exe&lt;/a&gt; (2.1 MB)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;■ 功能說明：&lt;/b&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-indent: 32px; line-height: 120%; margin-left: 20px;"&gt;&lt;br /&gt;編輯 ID3 資訊是一件麻煩的事。如果您習javascript:void(0)&lt;br /&gt;發佈文章慣 Excel 的編輯環境，使用它來編輯 ID3、複製文字、剪剪貼貼。那是不是方便多了？不管你是從無到有、或是修改現有的 ID3 資訊，使用這個程式都可以方便的完成。&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6758260041926380909-7721406752087278377?l=sean.o4u.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sean.o4u.com/feeds/7721406752087278377/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://sean.o4u.com/2008/05/id3.html#comment-form' title='38 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/7721406752087278377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/7721406752087278377'/><link rel='alternate' type='text/html' href='http://sean.o4u.com/2008/05/id3.html' title='ID3批次編輯工具 - ID3 Batch Editing'/><author><name>Sean Lin</name><uri>http://www.blogger.com/profile/16994068867619037922</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13467641485652785238'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_T8KAZQJUgOM/SCKg0XJGVBI/AAAAAAAABX4/YTW91ZK9YO8/s72-c/ID3xls.png' height='72' width='72'/><thr:total>38</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6758260041926380909.post-1287820512267650862</id><published>2008-04-21T13:30:00.007+08:00</published><updated>2010-05-18T03:44:09.812+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='自製小程式'/><title type='text'>農曆月曆&amp;世界時間 DHTML 程式</title><content type='html'>版本日期：2007年3月6日&lt;br /&gt;&lt;br /&gt;&lt;img align="right" border="0" src="http://1.bp.blogspot.com/_T8KAZQJUgOM/SAwnsvPIs0I/AAAAAAAABXk/qA750O4BTjM/s400/CalendarScreenShots.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;■ 純 HTML 版本：&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://s.o4u.com/host/blog/calendar/calendar.htm"&gt;台灣版(繁體)&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://s.o4u.com/host/blog/calendar/calendarGR.htm"&gt;台灣宗教節日版(繁體)&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://s.o4u.com/host/blog/calendar/calendarCN.htm"&gt;大陸版(簡體)&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://s.o4u.com/host/blog/calendar/calendarHK.htm"&gt;香港版(繁體)&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://s.o4u.com/host/blog/calendar/calendarUS.htm"&gt;美國中文版(繁體)&lt;/a&gt; &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_T8KAZQJUgOM/S_GcMDlXzKI/AAAAAAAAE5g/G2ndAjmsnlU/s1600/gadget.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="242" src="http://3.bp.blogspot.com/_T8KAZQJUgOM/S_GcMDlXzKI/AAAAAAAAE5g/G2ndAjmsnlU/s400/gadget.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;■ Sidebar Gadget 版本 (for Windows Vista/7)：  &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://gallery.live.com/liveItemDetail.aspx?li=cd7eb0db-3532-4cd6-b828-4c23991c6a62&amp;amp;l=1"&gt;台灣版&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://gallery.live.com/liveItemDetail.aspx?li=ea81c50c-fd0b-431e-8d8c-f8b7cbb2b889&amp;amp;l=1"&gt;香港版&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://microsoft.csdn.net/vista/gadgets-contest/showme.aspx?pointid=168"&gt;大陆版&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6758260041926380909-1287820512267650862?l=sean.o4u.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sean.o4u.com/feeds/1287820512267650862/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://sean.o4u.com/2008/04/dhtml.html#comment-form' title='35 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/1287820512267650862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/1287820512267650862'/><link rel='alternate' type='text/html' href='http://sean.o4u.com/2008/04/dhtml.html' title='農曆月曆&amp;世界時間 DHTML 程式'/><author><name>Sean Lin</name><uri>http://www.blogger.com/profile/16994068867619037922</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13467641485652785238'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_T8KAZQJUgOM/SAwnsvPIs0I/AAAAAAAABXk/qA750O4BTjM/s72-c/CalendarScreenShots.jpg' height='72' width='72'/><thr:total>35</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6758260041926380909.post-3564977712548962184</id><published>2008-04-14T10:53:00.000+08:00</published><updated>2009-04-08T11:21:58.792+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='自製小程式'/><title type='text'>即時「電視節目表」與「選台器」</title><content type='html'>版本：v2.3.4 版 (2008年4月8日)&lt;br /&gt;&lt;br /&gt;下載：&lt;a href="http://tvcontrol.googlecode.com/files/tvctrl234.install.exe"&gt;tvctrl234.install.exe&lt;/a&gt; (120KB)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://3.bp.blogspot.com/_T8KAZQJUgOM/SARUWSj3JSI/AAAAAAAABXI/jH4RxVQiCUE/s400/TvScreenShots.png" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    v2.3.4 (2009/03/27)&lt;br /&gt;        - 節目來源HTML改格式配合修改 TvAgent.wsf。(serate)&lt;br /&gt;        - 全日節目表點擊節目名稱，可直接上 Google 搜尋。(stanwu.tw)&lt;br /&gt;        - 如果已經下載過的節目資料,在程式開啟時就直接顯示。(sean.tw)&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6758260041926380909-3564977712548962184?l=sean.o4u.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sean.o4u.com/feeds/3564977712548962184/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://sean.o4u.com/2008/04/blog-post.html#comment-form' title='54 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/3564977712548962184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/3564977712548962184'/><link rel='alternate' type='text/html' href='http://sean.o4u.com/2008/04/blog-post.html' title='即時「電視節目表」與「選台器」'/><author><name>Sean Lin</name><uri>http://www.blogger.com/profile/16994068867619037922</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13467641485652785238'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_T8KAZQJUgOM/SARUWSj3JSI/AAAAAAAABXI/jH4RxVQiCUE/s72-c/TvScreenShots.png' height='72' width='72'/><thr:total>54</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6758260041926380909.post-1190806820365675211</id><published>2008-03-29T18:49:00.001+08:00</published><updated>2008-03-30T18:22:21.316+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='最新消息'/><title type='text'>還沒準備好</title><content type='html'>還在工作中....&lt;br /&gt;&lt;br /&gt;最近工作比較忙，沒什麼時間做自己的網站。&lt;br /&gt;&lt;br /&gt;TVControl 節目表有問題，還沒時間修。請再忍耐一下，不要再寫信來問了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6758260041926380909-1190806820365675211?l=sean.o4u.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sean.o4u.com/feeds/1190806820365675211/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://sean.o4u.com/2008/03/blog-post_29.html#comment-form' title='6 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/1190806820365675211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/1190806820365675211'/><link rel='alternate' type='text/html' href='http://sean.o4u.com/2008/03/blog-post_29.html' title='還沒準備好'/><author><name>Sean Lin</name><uri>http://www.blogger.com/profile/16994068867619037922</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13467641485652785238'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6758260041926380909.post-3136168832910753994</id><published>2008-03-29T12:41:00.001+08:00</published><updated>2008-03-29T12:47:17.739+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='最新消息'/><title type='text'>施工中</title><content type='html'>&lt;p&gt;因為原先網站主機掛掉。所以打算把舊網站所有內容移植到這個 blog。&lt;/p&gt;  &lt;p&gt;請再等幾天...&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6758260041926380909-3136168832910753994?l=sean.o4u.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sean.o4u.com/feeds/3136168832910753994/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://sean.o4u.com/2008/03/blog-post.html#comment-form' title='3 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/3136168832910753994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6758260041926380909/posts/default/3136168832910753994'/><link rel='alternate' type='text/html' href='http://sean.o4u.com/2008/03/blog-post.html' title='施工中'/><author><name>Sean Lin</name><uri>http://www.blogger.com/profile/16994068867619037922</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13467641485652785238'/></author><thr:total>3</thr:total></entry></feed>