in

Darkthread

黑暗執行緒

Browse by Tags

  • 如何自訂 OpenCC 字彙轉換表

    OpenCC 已提供十分優質的繁簡轉換,不過呢,實際使用下來難免會有些不到位的地方。所幸,OpenCC 的架構開放又有彈性,修改 json 設定檔就能載入自訂轉換字典,如果對既有轉換表或轉換規則不滿意,OpenCC 開放源碼,絕對讓你改到開心為止。 用個簡單例子示範如何自訂字彙轉換。假設我想將「黑暗執行緒在雲霄飛車上吃便當」翻成簡體,如使用包含常用詞彙轉換的設定檔 tw2sp.json,轉換結果如下: 輸出結果為「黑暗綫程在云霄飞车上吃便当」,而我希望保留「執行緒」不要翻成「綫程」,並將「云霄飞车」與「便当」 翻成大陸用語「过山车」與「盒饭」。 遇到 OpenCC 未包含的轉換字彙,最簡單的解決方法是在...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 06-13-2018
  • 使用 C# 整合 OpenCC 執行中文繁簡轉換

    前篇文章 介紹了輕巧但威力強大的 OpenCC,使用 opencc.exe 可輕鬆完成繁簡轉換。 如果我們要在 .NET 裡寫一個函式招喚 OpenCC 將繁體字串轉成簡體字串該怎麼做? 呼叫外部 .exe 這等小事,自然難不倒 .NET 老鳥,生個 System.Diagnostics.Process,給對 exe 路徑,弄兩個隨機暫存檔放待翻文字與輸出結果,等待 opencc.exe 執行完畢,讀出結果刪掉暫存檔,搞定收工! public static class OpenCCConverter { static string GetPath(string file) => $"X...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 05-26-2018
  • OpenCC 中文繁簡體轉換工具

    漫長的碼農生涯,難免會遇到中文繁簡轉換需求,過去我都 依賴 Word ,但在 Web Server 整合 Word 是件麻煩事。Word 程序體積龐大,啟動要耗用不少記憶體跟 CPU,不適合每次 Request 隨用隨建用完即丟。加上 Word 為桌面程式會綁執行身分,不適合用 IIS AppPool 帳號跑。最後我琢磨出來的解決方案是寫成 Windows Service 以 WebAPI 方式提供服務,服務啟動時開啟固定數量的 Word 程序,分攤處理需求。在實務經驗中,Word 偶爾會因不明原因故障,故得加上連續出錯就重啟 Word 的自我修復機制。另外,伺服器得安裝 Office 多少也增加部署複雜度...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 05-24-2018
  • JavaScript 中文排序問題

    今天才發現 JavaScript 中文字串排序有個大問題! 下圖是 KendoGrid 在 Chrome 使用 JavaScript 排序的結果,如圖所示,一到七由小到大排序結果為一、七、三、二、五、六、四,既不是依筆劃,也不是依注音: (SQL 的中文定序就區分筆劃跟注音,例如: Chinese_Taiwan_Stroke_CI_AS vs Chinese_Taiwan_Bopomofo_CI_AS 參考 ) 爬文後得知這是 JavaScript 中文字串排序的己知問題(我 Lag 真大),字串型別有個 localeCompare() 可傳入語系參數進行比較,貌似能解決問題但實際不行。 我寫了測試程式如下...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 10-19-2017
  • 再談集保罕用字集與 BIG5 造字區

    同事遇到集保罕集問題,我試著解釋個中奧妙時冒出一堆「集保罕字的X」「Unicode標準字的X」「看起來一樣但編碼不同」把同事薰得七葷八素,感覺都快吐了… 嗯,寫篇文章細說從頭吧。 很久很久以前,在 Unicode 還沒一統天下之前, BIG5 是台灣地區的主流中文編碼,其中定義 13,053 個常用字與次常用字與 441 個符號。問題來了,有些日常生活會用到的字(最常見是人名)沒被包含在這一萬三千字裡,所以早些年水牛伯還活躍於政壇時不時可在使用 BIG5 的新聞網站看到「游錫方方土」,還有「陶吉吉」大家應該也不陌生 XD (關於 BIG5 與 Unicode 編碼,之前曾在中文編碼解析工具 介紹文...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 08-17-2017
  • 中文亂碼「嚙踝蕭嚙踝蕭」是怎麼來的?

    在 FB 看到 91 貼了一張照片,提到某廠商的電子報一直存在亂碼問題,寄信人與信件主旨出現一堆嚙調客、嚙踝蕭… 之類的怪字亂碼。 有種畫面上到處是老鼠的感覺… (嚙是 齧 的異體字) 連 Chrome 也想吶喊「有老鼠!Encoding 碰上麻煩了。」 XD 之前寫過一篇 中文亂碼"蕞蕞蕞蕞"是怎麼來的? ,猜想同樣是錯用編碼解析的結果,雖然最近案子忙到火燒屁股,但就看到球滾進了我的守備範圍,還是忍不住研究起老鼠從哪來… XD 用一小段程式驗證問題來自「錯用 UTF8、BIG5 解碼」: 首先將「嚙踝蕭嚙踝蕭」做一次 BIG5 逆轉回 UTF8,得到 ����,� (EF...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 10-09-2016
  • Hacking樂無窮:修正Dapper+ODP.NET無法寫入Unicode問題

    歷經一段時間摸索歷練,確立「新増修改用EF/ORM,查詢一律用Dapper」的最高指導原則,Dapper的簡潔、效能與彈性無可挑剔,一切看似完美,直到我膝蓋中了一箭… 無意間發現,使用Dapper+ODP.NET無法寫入Unicode字元 跟Oracle Unicode問題奮戰 超過10年 ,以為妖孽已被降伏,用OracleDbType.NVarChar2應該就萬無一失,甚至要在CommandText中用N'…'也 不是問題 ,萬萬沒想到Oracle Unicode問題今天又跑出來咬我屁股。 用以下範例重現問題: using System; using System.Collections...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 08-21-2016
  • Excel CSV輔助工具強化版-支援換行符號

    避免Excel開啟CSV時截掉左補零的小工具 是我三年前的作品,用來克服Excel開啟CSV時"00001"會變成"1"的問題。最近網友g提供了一個轉換失敗案例,引發我的興趣,檢查CSV後發現幾項問題: CSV內含日文,使用Shift-JIS編碼(ANSI)而非UTF8,當初將所有ANSI檔案視為BIG5,形成亂碼 部分欄位內容夾帶換行符號(如黃底所示),擾亂原本以"\r\n"分隔資料列的解析邏輯 程式未考慮CSV部分欄位自帶雙引號的情況,造成雙引號重複(=""…"")。 用小工具轉換開啟會變成這副德行...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 08-08-2015
  • 潛盾機-解決VS2015程式檔BIG5相容問題

    改用VS2015後沒多久就發現它處理BIG5(ANSI)編碼程式碼的原則不同於以往(推測與編譯器改用Roslyn有關),導致部分使用BIG5編碼存檔的古老程式檔,會因 許功蓋 造成編譯錯誤。 PO文隔兩天同事跟我說,他們換VS2015後也射了好一陣子茶包,最後爬文又爬回我的文章。XD 後來聊到可以寫程式把所有BIG5編碼程式檔轉成UTF8一勞永逸,同事說檔案沒幾個,手動另存就搞定了,還不需要養乳牛。 這兩天,收到網友留言詢問VS2015是否會修正這個問題;也有網友提到手上專案有成千上萬個cs,改了一個BIG5,還有千千萬萬個BIG5,只好跟VS2015說Goodbye。 首先,雖然不確定VS2015會不會針對此一Issue進行修正...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 08-06-2015
  • 【茶包射手日記】VS2015程式檔編碼問題

    裝好VS2015後,陸續將VS2013維護的專案改用VS2015開啟,原以為可完全無痛移轉,踩到小刺一根。 某個用VS2013開發多時的專案,移到VS2015出現編譯錯誤!以下面的程式為例: Console.WriteLine那行發生Unrecoginzed escape sequence錯誤。 看到Unrecongized escape又看了看問題字串,程式老骨頭心中警鈴聲大作: 我被「 許功蓋 」偷襲了? 使用Notepad++開啟C#原始檔,果不其然,檔案編碼被設成BIG5(ANSI)。 依開發規範,程式檔都該存成UTF8編碼,避免中文難字或非中文的Unicode字元變成亂碼。出問題的.cs檔案有點歷史...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 07-22-2015
第1頁,共7頁 (64個項目) 1 2 3 4 5 下一頁 > ... 最後一頁 »
Powered by Community Server (Non-Commercial Edition), by Telligent Systems