發表文章

中文難字與 Html Entities (C#)

工作的環境中會遇到新舊系統交雜以及中文內碼轉換問題。 某系統為Big5編碼,用 Html Entities 儲存但超出Big5編碼範圍的unicode字元,存在資料庫內像是: 伃 瀏覽器顯示出來,會是人字旁的 伃 。 我的工作得把在另一套舊系統內,用非Unicode造字的姓名找出來。當初公司本來採用另一套造字管理程式。由於這些字的內碼沒有規則,對電腦而言跟天書沒兩樣,只能利用windows的輸入法整合器手寫,找到跟unicode內一致或相近的字體,丟到網路上查出Html Entity,再回存到資料庫。 現在機器學習成為顯學,本來想過要寫套圖形辨識來比對特徵,把舊有難字轉成圖片,找出unicode的字。後來發現實際執行上人工搜尋雖然笨,但已能滿足需求,只好把自動辨識的  side project  先擱在一邊了。 另外,必須找一部xp跟一部win7以上電腦做比較,確認big5的欄位有沒有字是混到unicode?要確認未來舊的難字系統關閉後,能不能忠實呈現難字。 一定有同行質疑,新系統的值幹嘛不直接存unicode?主要還是要考慮其他人用舊系統回溯查詢的問題。新的系統帶unicode,舊系統帶存有 html entity的值的欄位。這是又大又複雜的系統,所不得不做的考量。 由unicode的字查Html Entity,可以用轉換的;少量可以單筆試手氣,如: http://jicheng.tw/hanzi/search.php Html Entity 的大全集可再下面找到: http://jdawiseman.com/papers/trivia/character-entities-lots.html 此外,在網頁顯示時,瀏覽器會自動轉換成unicode顯示,但在匯轉成excel或csv時,帶出這樣的值會被當成亂碼。在C# 中,必須將其加以處理,但要注意的是,考慮專案跨平台的可能性,不要呼叫  HttpUtility.HtmlDecode , 而是使用 System.Net.WebUtility.HtmlDecode(texts); 可以得到相同結果,但有比較大的彈性。 參考出處: https://stackoverflow.com/questions...

小資族理財:重讀「有錢21招:寫給低薪族的理財觀念魔法書」

小資族理財:重讀「有錢21招:寫給低薪族的理財觀念魔法書」 《有錢21招:寫給低薪族的理財觀念魔法書》( 財信出版 ,2010 )是本出版很久的老書,在網路上可以找到許多內容摘錄與評論。但筆者覺得本書歷久彌新而且富有歷史意義。 首先,2008次貸風暴引發全球不景氣,許多高收益組合變成泡影。此時這本書強調的: 理財不是要變有錢,而是不要變窮,就顯得十分受用。 其次, 這本書是針對手頭資源不多的人的入門建議。想要獲得具體理財操作步驟的人,難免會有點失望,因為這本書不是要教你殺進殺出。也許更適合有一點點理財經驗但無法跳出窮忙困境的人閱讀。 本書原來的例子很多取自美國,因此以下的心得是以個人的經驗以及本土的例子重新改寫過。 一、理債 算清楚手頭有那些錢 有義務要付給別人 。避免「感覺有錢、真貧窮」。 不要被欠款利息拖垮。 超出負擔能力的借貸,在市場低迷時會加劇損失 (ex1:借房貸買股或買債券、卡債以債養債) (ex2:極端例子,如次貸風暴時部分民眾寧可棄屋不繳,因為房子貶值到低於市值,根本不值錢,還要付利息出去)。 二、節用 物質慾望少一點,用精心規劃的旅遊、家庭聚會....等生活上的 愉悅體驗 代替 物質享受 。 付得起的錢不要靠保險,保險只用來轉嫁不可承受的風險 (只要存款夠多,很多錢你都負擔的起。保費付出去你手頭的可支配現金就少了。 保險只用於轉嫁不可承受的風險(身故/全殘)。如果沒有扶養親屬[尊長或子女],壽險可能不需要) ※可參考劉鳳和先生的 平民保險王 從源頭減少固定支出 (個人註解:汽車、房屋等看似基本配備的物件,都須長期付出維護費,且需每年折舊) 手頭緊的話,要狠下心別考慮買房子或留錢給小孩,先考慮老年生活跟退休金。 小孩有無窮的機會,但是你活不好會拖累下一代(不要禍延子孫) 越老 存錢,越來不及 小孩可以辦學貸,你老了可是無錢可貸 要考慮到,你可能會活很久(不要禍延子孫,很重要) 三、 賺錢是基本, 存錢更重要 以台灣的例子,行有餘力的話多存勞退基金(雇主提薪資6%,個人可以自己選擇加扣薪資的6%),強迫儲蓄。還有最低保證收益與稅務減免。 (很多人搞不清楚 勞工保險金 跟 勞工退休金 是兩筆錢,沒有留意雇主扣除額被高薪低報的問題) 年輕時多存錢,到30歲以...

IIS記事兩則:上傳空間限制(MaxRequestLength) 與 錯誤追蹤紀錄不完整(LOG-FILE-MAX-SIZE-TRUNCATE)

圖片
Windows Server 的IIS 有個陳年舊案:系統為了安全與效能考量,會限制上傳檔案的大小。從多年前的4MB大小,演變到在.net framework可自行調整設定。若設的太保守,user上傳檔案超過限制,系統會直接噴錯誤。這靠try-catch會攔不下來,得從該部主機的事件檢視器裡才能觀察的到。 要解決本問題,以Server 2012而言的步驟如下: (1)首先要改 web.config內的 <system.web> 區段內的httpRuntime設定,在當中增加maxRequestLength屬性(請記得是將語法加到現有那一行內的內容,不是多複製一條貼上。這樣會造成網站不能運作)。 範例中8096的單位是KB。 < system.web > <httpRuntime targetFramework="4.5" enableVersionHeader="false" maxRequestLength="8096" executionTimeout="300" /> .....  </ system.web > (2)再者, 在IIS的要求篩選頁面的設定,點選右方藍色小字的 編輯功能設定。 允許的內容上限應比前述步驟一的httpRuntime略大一些。 另外,加上錯誤的處理程序會更好一些。讓Global.asax實作超出可容忍上傳大小的錯誤處理,避免噴出錯誤,而是重導到某個較友善的說明網頁。 protected void Application_BeginRequest(object sender, EventArgs e) {     HttpRuntimeSection section = WebConfigurationManager.GetSection("system.web/httpRuntime") as HttpRuntimeSection;     if (section != null)     {       ...

日治時期舊籍電子資料庫書目解題

台史所檔案系統 | 台灣研究古籍資料庫  |   台灣日記知識庫  | 公共資訊圖書館數位典藏  (戰後「民報」、報刊查詢) 國家檔案資訊網  |   檔案資源整合查詢  |    總督府公文類纂   (國史館台灣文獻館) 臺灣法實證研究資料庫    |  日治法院檔案資料庫  | 台灣文獻叢刊      台灣百年歷史地圖 淡新檔案數位典藏  | 淡新檔案數位圖書館  | 淡新檔案全文 南方資料  |  日治時期期刊影像  |  台灣政經資料庫 (戰後初期) 台南新報 國立台灣圖書館台灣學數位電子書 日據時期住所番地與現行行政區對照表 門牌地址查詢系統 重測前後新舊地建號查詢  |  新竹市 日文舊籍聯合目錄 http://192.192.13.206/cgi-bin/gs/wgsweb.cgi?o=dccw 台灣都市計畫(德州大學圖書館) http://www.lib.utexas.edu/maps/ams/formosa_city_plans/ 福爾摩沙影像 https://rdc.reed.edu/c/formosa/home/ 國立公共圖書館 http://das.ntl.gov.tw/sp.asp?xdurl=sp.asp&spurl=xdcm/query_for_front/search/search_ad.jsp?dtd_id=000038&ctNode=344

Epplus 設定 excel 儲存格顏色、儲存格內文字變色 (set cell color)

Epplus 是好用的.net 讀/寫 Excel套件。當中有個設定儲存格填滿顏色的小技巧。 Epplus可以用範圍宣告,改變範圍內所有儲存格的色彩外觀。 using (ExcelRange rng = ws.Cells["A1:E1"]) {     rng.Style.Font.Bold = true ; } 當然,大多數時候我們是從資料庫將資料以迴圈帶出,事先不知道筆數,因此擺在for 迴圈內逐筆指定:  sheet1.Cells[startRow, 5]. Style.Font .Bold = true; sheet1.Cells[startRow, 5]. Style.Fill.PatternType  = OfficeOpenXml.Style. ExcelFillStyle.Solid; sheet1.Cells[startRow, 5].Style.Fill.BackgroundColor.SetColor( System.Drawing.Color.Aqua ); C#寫久的開發者,常常會習慣.Style.Fill...嘗試方法一路找下去,找到SetColor,但光是這樣無法執行。還要加上 Style.Fill.PatternType。否則在編譯時會報錯。 此外網路上的範例會寫 Style.Fill.PatternType  = ExcelFillStyle.Solid,但這樣IDE會顯示找不到,還是要補齊  OfficeOpenXml.Style. ExcelFillStyle.Solid 才能運作。 儲存格內文字變色的範例:(這是vb.net 的,語法類似)   If Dt1.Rows(rIndex)(colIndex).GetType.ToString() = "System.Int32" Then           If Dt1.Rows(rIndex)(colIndex) > 0 Then                   sheet1.Cells(startRow, colIn...

《台灣慣習記事》中譯本分類引得

《台灣慣習記事》中譯本分類引得 糖業 原住民 B2 vol .1 no.10 p.161 糖 廍 古契約書 B3 vol .2 no.1 p.45 糖 廍 與糖間 B3 vol .2 no.3 p.105 糖業問答 B3 vol .2 no.4 p.161    ─ B7 vol .4 no.5 p.240 台灣的甘蔗與砂糖 B2 vol .1 no.8 p.68 番大租 B2 vol .1 no.10 p.157 岸裡大社熟番 B7 vol .4 no.1 p.7 恆春該地之原住民 B7 vol .4 no.3 p.142 對熟番的賜姓策略 B7 vol .2 no.8 p.53 台灣民番的土地爭奪 B7 vol .2 no.11 p.227 番社的台帳樣式 宗族組織 宗教信仰 B1 vol .1 no.1 p.1 台灣的家族制度與稱謂 B1 vol .1 no.4 p.111 親族繼承 B2 vol .1 no.8 p.87 鸞堂、降筆會 B2 vol .1 no.11 p.221     ─ B3 vol .2 no.2 p.80 城隍 B3 vol .2 no.4 p.177 噶瑪蘭的媽祖與城隍 B3 vol .2 no.6 p.266 天妃即媽祖 B4 vol .2 no.10 p.180 關聖大帝 B6 vol .3 no.7 p.33 神明會的性質 ( 以長和宮為例 ) B6 vol .3 no.9 p.142 王船 B6 vol .3 no.10 p.200  ─ B6 vol .3 no.10 p.201 臨水夫人 ( 順天聖母 ) B6 vol .3 no.11 p.320 普願社 掌故、史事 行政 B1 vol .1 no.1 p.9 分類械鬥 B1 vol .1 no.2 p.58 亭仔腳的構造與歸屬 B1 vol .1 no.2 p.59 軍功牌 B1 vol .1 no.3 p.76 演員與演劇 B1...

用inkscape畫地圖

圖片
本圖面由作者繪製,部分內容尚在校對考證中,引用前請先告知,俾免誤用。  學生時代修習地理資訊系統繪製地圖,所應用工具的首選是ESRI的 ArcView GIS,但她的價格昂貴不親民,且難以取得。後來隨著Google地圖與線上數化工具的普遍,加上諸多研究計畫的推廣,現今使用者很容易查到台灣堡圖、地形圖....等等的古今對照 [ 如 臺灣百年歷史地圖 ]。問題是要描繪精細的小範圍地圖座考證時,要把自己的點陣圖圖面放進去套疊有其困難;而研究機構提供的圖,因為比例尺差距過大(製圖年代不同,精度也可能不同)以及圖幅接合的原因,常會讓人覺得某些地方就是跑掉了,發出「這條街明明不是在那裏啊」、「那條圳溝怎麼蒸發了」...的疑問。❓ 並不是筆者故意假會,上圖就是使用中研院地圖線上實際套疊的結果 ( http://gissrv4.sinica.edu.tw/gis/twhgis.aspx 套疊 日治二萬五千分之一地形圖(1921)  )。 如果使用者想要做長久的圖層管理或數位化,[ QGIS ]應該是不錯的選擇。 如果使用者不堅持"精確的"、"學術性"的操作,懶得研究kml,或是只是要把現有的圖層轉繪成向量圖或輸出時,以往的首選是Adobe Illustrator。但他過於昂貴且吃記憶體,當要套疊的圖層變多時,非常容易無預期死當。這時候想到一套很久以前接觸的自由軟體─[ inkscape ],他提供良好的操作體驗,圖層管理可以很方便的設定透明度,利於描圖;特別是貝茲曲線的繪製以及微調,操作流暢速度又快,對於簡單畫地圖、描圖,已經非常夠用了。 既然要把她當成簡易的地圖繪製功能來用,首先要知道如何叫出圖層管理介面。 首先,從主選單的「物件」 點選 物件 在右方會出現 圖層的管理面板。如果你看到的是縮在一起的面板,請拉動面板左邊與下方的邊界使其伸展。 新增說明文字 在面板的下緣,可以看到+ 號,代表加入圖層,右方的綠色箭號代表移動圖層的順序。 不透明度的拉bar則可以調整圖片的透明程度,描圖時非常重要。 針對地圖上不同的項目,例如要套疊的不同年代圖層、文字註記等等,都用不同的圖層分開管理。圖層編輯完之後,記得點選左方的鎖頭圖示加以鎖定。 接著載入要...