Category: 中文編碼

OpenCC 已提供十分優質的繁簡轉換,不過呢,實際使用下來難免會有些不到位的地方。所幸,OpenCC 的架構開放又有彈性,修改 json 設定檔就能載入自訂轉換字典,如果對既有轉換表或轉換規則不滿意,OpenCC 開放源碼,絕對讓你改到開心為止。 用個簡單例子示範如何自訂字彙轉換。假設我想將...

前篇文章介紹了輕巧但威力強大的 OpenCC,使用 opencc.exe 可輕鬆完成繁簡轉換。 如果我們要在 .NET 裡寫一個函式招喚 OpenCC 將繁體字串轉成簡體字串該怎麼做? 呼叫外部 .exe 這等小事,自然難不倒 .NET 老鳥,生個 System.Diagnostics.Pr...

漫長的碼農生涯,難免會遇到中文繁簡轉換需求,過去我都依賴 Word,但在 Web Server 整合 Word 是件麻煩事。Word 程序體積龐大,啟動要耗用不少記憶體跟 CPU,不適合每次 Request 隨用隨建用完即丟。加上 Word 為桌面程式會綁執行身分,不適合用 IIS AppPool...

今天才發現 JavaScript 中文字串排序有個大問題! 下圖是 KendoGrid 在 Chrome 使用 JavaScript 排序的結果,如圖所示,一到七由小到大排序結果為一、七、三、二、五、六、四,既不是依筆劃,也不是依注音: (SQL 的中文定序就區分筆劃跟注音,例如: Chines...

同事遇到集保罕集問題,我試著解釋個中奧妙時冒出一堆「集保罕字的X」「Unicode標準字的X」「看起來一樣但編碼不同」把同事薰得七葷八素,感覺都快吐了… 嗯,寫篇文章細說從頭吧。 很久很久以前,在 Unicode 還沒一統天下之前,BIG5 是台灣地區的主流中文編碼,其中定義 13,053 個...

在 FB  看到 91 貼了一張照片,提到某廠商的電子報一直存在亂碼問題,寄信人與信件主旨出現一堆嚙調客、嚙踝蕭… 之類的怪字亂碼。 有種畫面上到處是老鼠的感覺… (嚙是齧的異體字) 連 Chrome 也想吶喊「有老鼠!Encoding 碰上麻煩了。」 XD 之前寫過一篇中...

改用VS2015後沒多久就發現它處理BIG5(ANSI)編碼程式碼的原則不同於以往(推測與編譯器改用Roslyn有關),導致部分使用BIG5編碼存檔的古老程式檔,會因許功蓋造成編譯錯誤。 PO文隔兩天同事跟我說,他們換VS2015後也射了好一陣子茶包,最後爬文又爬回我的文章。XD 後來聊到可以...

裝好VS2015後,陸續將VS2013維護的專案改用VS2015開啟,原以為可完全無痛移轉,踩到小刺一根。 某個用VS2013開發多時的專案,移到VS2015出現編譯錯誤!以下面的程式為例: Console.WriteLine那行發生Unrecoginzed escape sequenc...

Microsoft.VisualBasic.Strings.StrConv靜態方法是在.NET轉換半形全形最簡便的做法(即使語言是C#也沒差,在專案加入Microsoft.VisualBasic參照即可),最近實際用在專案,又發現了一些眉角,整理筆記備忘: 在開發機測試OK,丟到測試機執...

作業環境有個需求: 有一些PL/SQL DDL指令需先匯成sql檔,再透過程式呼叫SQLPlus.exe執行。 SQLPlus.exe可讀入SQL Script檔案直接執行,例如: sqlplus –s user/pwd @script.sql,而透過程式啟動外部EXE也不是問題,一切看似小菜...

BIG5 與 GB2312 是繁體中文與簡體中文最常採用的 ANSI 形式編碼,當代系統多已改採 Unicode ,但在涉及傳統系統整合的情境中,仍有處理中文 ANSI 編碼的需求。有時,資料來源較雜,BIG5、GB2312 編碼都有可能,系統規劃者多半希望系統能由二進位資料 (Byte Arr...

前陣子找到將Big5-HKSCS編碼轉為Unicode的解決方案,實際應用卻發現問題 -- 若字串已是Unicode編碼且混雜其他語系字元,HKSCS_Big5ToUnicode41()便無法招架。 延續上回的例子: 在"滙豐銀行 警衞室"後方故意加上"喆&...

昨天介紹了Big5-HKSCS,初步心得是: Big5-HKSCS跟Big5一樣是歷史的眼淚,新一代Unicode標準已能涵蓋其字元範圍又能同時兼容各國語系。因此,拋棄ANSI規格,回歸Unicode才是王道!! 但這衍生一個需求 -- 若既存文字檔或其他老系統仍採用Big5-HKSCS編碼內...

身為中文編碼解析工具的開發者,一直以為自己"略懂"中文編碼,這兩天再度見證"學海無涯",默默收回"略懂"二字... 從以下畫面說起: 五種瀏覽器(IE, Opera, Chrome, Firefox, Safari)一次排開檢視...