Browse by Tags

Coding4Fun - 點陣中文字型顯示
因緣巧合,最近剛好需要處理中文點陣字型。 在DOS+倚天中文的古早年代,曾經用BASICA寫過解析倚天中文字型檔的程式,沒想到二十多年後居然還有機會重新回味,只是這回手上的兵器已由當年的BASICA小開山刀,換成C#加農砲,語言特性已不可同日而言、自己的程式技巧也遠比當年成熟,對照起來格外有趣。 時代演進大大地改變了寫程式的方法,當年要自己瞎摸亂湊好一陣子才能拼湊出檔案規格,現在稍稍爬文就能找到網友的熱心分享: 倚天中文字型檔結構說明 (倚天中文系統雖已不再販售,但要正式應用仍需取得字型檔授權)...
【潛盾機】避免Excel開啟CSV時截掉左補零的小工具
老問題一枚。使用Excel開啟CSV檔案,會l將純數字組成的字串視為數字型別處理,導致"000123"之類的左補零數字編碼變成"123"(如下圖所示),對必須補零到固定長度的編碼欄位來說,莫名被截掉部分內容,常會造成困擾。所幸,透過簡單的 CSV花式技巧 ,在CSV中寫成="000123",就可強迫Excel將其視為文字處理,避免前方的零被截除。 遇到一個棘手情境: 某CSV檔需符合其他系統上傳規格,不能輸出成="000123"的形式...
CODE-偵測檔案是否為BIG5編碼
有個偵測文字檔是否為BIG5編碼的需求,決定寫個小函數來實現。 要偵測BIG5編碼,有一種寫法是將字串轉為byte[]後再比對0xA440-0xC67E等編碼區間( 參考 )加以識別;不過,我不太喜歡這類寫法,理由是既然BIG5編碼邏輯細節已存在.NET內建Encoding類別中(可透過Encoding.GetEncoding(950)或Encoding.GetEncoding("big5")取得),編碼區間定義另外出現在我們的程式碼多少違背了"觀注點分離(SoC)...
Posted 11 April 2012 07:38 AMJeffrey | 13 comment(s) 30,571
Filed under:
【茶包射手日記】.NET主控台應用程式出現"系統無法執行指定的程式"錯誤
同事報案,某支排程作業主控台應用程式(Console Application)忽然無法執行,持續出現: The system cannot execute the specified program. 系統無法執行指定的程式 爬文發現此訊息大多與 缺少VC++ DLL 有關,但這是支.NET程式,加上原本可以執行,必要DLL忽然消失的可能不高,推測應另有原因。 試著直接由檔案總管點選exe執行,蒐集更詳細的訊息。登楞! 凶手的背影出現了~~ 訊息指出是config檔有問題,同事此時也出來補刀--"的確是修改過config後才壞的"...
TIPS-製作固定欄寬資料檔
昨天小談了 固定欄寬資料檔解析 程式的寫法,有人問到解析之餘要如何產生固定欄寬資料,並提了一些常見 但有點機車 的需求,例如: 針對數字欄位要能指定數值靠右左方補零(不知為什麼,某些"阿公"很愛用這種不補空白要補零的規格,每次要肉眼除錯時,十來個數字欄位夾雜零零相連到天邊,數位置數到眼睛都快出血了)、文字過長要能自動截切,還要避免切成半個中文字... 禁不住這團機車小需求的刺激,忽然一陣熱血衝腦... 待神智恢復時,發現自己端坐在電腦前,VS2010開啟中的專案有一段小程式....
Posted 25 February 2012 10:36 PMJeffrey | with no comments 5,255
Filed under: , ,
TIPS-固定欄寬資料檔的解析
跟傳統系統打交道時,XML、JSON等格式多半無用武之地,往往得透過"固定欄寬資料格式"進行資料交換。 在撰寫程式解析固定欄寬資料時,有幾點注意事項: 欄位寬度計算與中文編碼有關,實務上使用BIG5編碼還是大宗(阿公級系統很少能支援Unicode)。 BIG5編碼中,半形英數字佔一個Byte,全形符號及中文佔兩個Byte,欄寬規格書中CHAR(n),n多指Bytes,所以計算長度時,需把握中文算2或英數字算1的原則。 建議不要再用比對第一個Byte ASCII的方法自己判別全半形...
使用XHR下載BIG5編碼內容
為一個使用BIG5編碼的網站寫一小段AJAX Script滿足需求,結果踢到了鐵板。 使用$.get()或$.post()取得後端網頁程式執行內容是很普遍的技巧,但若網頁採BIG5編碼而非UTF-8時,會衍生額外議題。 以下面的網頁為例,我們在按鈕click()事件中使用$.get(location.href)取回網頁本身內容再alert出來,但有個重點--網頁記得要存成為BIG5編碼。(不知如何指定檔案編碼的朋友,可參考文末附註) <! DOCTYPE html > < html...
Posted 18 August 2011 07:36 AMJeffrey | with no comments 10,777
Filed under: , ,
在命令提示視窗(Command Prompt)顯示UTF-8內容
在中文版Windows中,Command Prompt預設使用BIG5編碼,因此檢視UTF-8編碼檔案時會出現亂碼。 今天學會一個指令, chcp ,使用chcp加上 Code Page代碼 ,就可切換指定的語系。UTF-8的Code Page是65001,先chcp 65001,再將預設的字型由Raster Fonts改成Lucida Console或Consolas,就可以正確顯示UTF-8編碼的檔案囉! (另外,下圖Options頁籤可查看目前的Code Page設定) PS: 切換到UTF...
Posted 11 August 2011 06:27 AMJeffrey | 7 comment(s) 80,409
Filed under:
CODE-配合VARCHAR長度截取字串
專案裡遇到的特殊需求,有個欄位在程式內部採用Unicode編碼,但要匯出給某個系統接收時,中介資料表卻制定了採Big5編碼的VARCHAR(50)格式,這意味著: 1) Big5編碼的中文字元相當於VARCHAR(2),長度限制應為25個Unicode中文字元 2) 包含Unicode的字串在轉換後將變成"?" 原本系統採保守策略,把輸入欄位的長度限定在25個字元,不過客戶反應輸入內容常中英文交雜,英文字元也被視為2個Byte(在VARCHAR其實只佔1個Byte),讓可用字數變少...
Posted 05 July 2011 08:03 AMJeffrey | 3 comment(s) 12,028
Filed under: ,
CODE-製作注音文字圖檔
之前幫小木頭寫的 英文單字測驗 ,有個小問題。 原本網頁介面上,每個單字只有圖片加英文,配合單字的圖片都是去網路上找的,很難做到100%精準搭配,有時甚至找不到明確符合的(例如: 星期三要用什麼圖片來象徵?),不小心就會變成聯想力考驗。例如,當初女王挑了一張可愛的老鼠卡通圖片(下圖左)當成Rats的插圖,結果發現小木頭竟把這個學校還沒教的單字誤解成"溜滑板",暈倒~~~ 決定出個改良版,為每張圖片加註附含注音的中文翻譯,小木頭讀注音國字已不是問題,這樣子看到生字才不用看圖亂猜一通...
Posted 20 June 2011 08:01 AMJeffrey | 4 comment(s) 10,935
Filed under: ,
jQuery - 中文輸入法與KeyDown/KeyPress事件
最近專案中引用了Telerik ASP.NET擴充元件 AutoComplete輸入欄位 ,測試時發現偶爾會不聽始喚,輸入文字時無法觸發資料查詢,在Javascript Source Code裡反覆追蹤測試,燃燒了可觀的寶貴春青,終於理出頭緒: 問題在中文輸入法! 過去模糊地知道中文輸入在瀏覽器的鍵盤事件行為上有些特殊,但從未深究,這回算是比較清楚研究其中的差別。其實最明顯的差異是: 切到中文輸入法後,輸入文字將不會觸發KeyPress事件,只會有KeyDown,而且傳回的e.keyCode會一律是229...
CultureInfo與中文字串排序
同事反應一個問題,有段程式使用LINQ的OrderBy排序一串中文名稱,在不同主機得到不同結果: string [] pool = "一 二 三 四 五 六 七 到 底 排 成 啥 順 序" .Split( ' ' ); Response.Write( string .Join( "," , pool.OrderBy(o => o).ToArray())); Response.End(); 一般來說,我們期望它依筆畫多寡排序,如以下順序...
Posted 16 February 2011 05:51 PMJeffrey | with no comments 6,783
Filed under: ,
讓OracleCommand.CommandText中N'...'正確被解讀
今天是值得紀念的一天!! 多年以來,我 一直以為 在非Unicode編碼ORACLE資料庫中正確塞入難字的唯一方法,只能透過OracleParameter... 手上有個應用,我寫的.NET程式要接收其他程式傳來的CommandText執行,而其中包含以N'...'方式新增難字內容的指令。無力改變這個協同運作方式,只能被逼著要解開這個謎團---到底要怎樣才能讓N'...'的難字正確送到ORACLE上執行呢? 不抱太大希望地在網路爬文,大概是多年來為了ORACLE Unicode問題煞費苦心孝感動天...
一個Reporting Service PDF中文字型與Mac相容議題的經驗
有User反應,用Mac開啟Reporting Service匯出PDF檔,看不到其中的中文字,但英數文字正常。經過一番測試,果不其然就是中文字型問題。 直接整理本次實驗心得供大家參考: RDL報表中,不論將字型名稱設定為"DFKai-SB"或"標楷體",在Windows平台上均可正確顯示標楷體;但在Mac上,字型設為"DFKai-SB"時,PDF的中文字無法顯示,並會出現找不到DFKai-SB字型的警示,設為"標楷體"則正常...
Oracle資料庫為AL32UTF8時VARCHAR2即可存Unicode
學海無涯! 一直以來, 要放Unicode文字就得開NVARCHAR欄位 的觀念深植我心。直到今天聽一位同事說: 如果Oracle資料庫的字元集設成Unicode,開VARCHAR就好了,不必為Unicode特意開NVARCHAR。 這顛覆了我的認知,但也不確定我根深蒂固的觀念是否隨軟體版本演進早已有所誤差。在噗浪上發問後,陸續收到一些回應: Access, MySQL, PostgreSQL都是如此(謝謝Bill, 鳥毅),噗友王圓外更是直接證實這點,於是也我寫了個小程式,找了台NLS_CHARACTERSET...
Posted 15 July 2010 07:28 PMJeffrey | 1 comment(s) 9,911
Filed under: ,
更多文章 « 上一頁 - 下一頁 »

搜尋

Go

<January 2018>
SunMonTueWedThuFriSat
31123456
78910111213
14151617181920
21222324252627
28293031123
45678910
 
RSS
創用 CC 授權條款
【廣告】
twMVC
最新回應

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication