潛盾機-BIG5編碼難字檢查器

網友NOROI提問有沒有將中文難字變成NCR的程式範例? 換句話說,就是程式要識別出字元是否為中文BIG5編碼所不支援的難字,若是,則轉成犇這種NCR格式。

以下是我想到的範例: (偵測難字我用的方法是試著將文字轉成BIG5編碼,如果變成?就視為難字)

   1:  string toNCR(string rawString)
   2:  {
   3:      StringBuilder sb = new StringBuilder();
   4:      Encoding big5 = Encoding.GetEncoding("big5");
   5:      foreach (char c in rawString)
   6:      {
   7:          //強迫轉碼成Big5,看會不會變成問號
   8:          string cInBig5 = big5.GetString(big5.GetBytes(new char[] {c}));
   9:          //原來不是問號,轉碼後變問號,判定為難字
  10:          if (c!='?' && cInBig5=="?")
  11:              sb.AppendFormat("&#{0};", Convert.ToInt32(c));
  12:          else
  13:              sb.Append(c);
  14:      }
  15:      return sb.ToString();
  16:  }

寫這段範例的同時,忽然想到它可以解決我一個多年來的困擾。

有時我在VS 2005/VS.NET 2003存檔時,會出現如下的警告:

有時這的確是因為我在Source Code中輸入Big5難字所引起,但更多時候卻是因為中文輸入時打錯字或選字不當引起,例如: 我就常常把"拋"輸入成"抛"。存檔時VS 2005警告檔案有難字,一臉無辜的我就知道糟了,又打錯字了,可是剛才改了幾十個地方,到底是哪一個字打錯??  明知有錯字卻放著不改,對我來說,就像明知臉上沾著飯粒還要去約會一樣讓人不自在... 可是連哪一個字打錯都不確定,即使VS 2005有強大的Find功能,還是不知從何找起?

有了下面這台潛盾機,把臉擦乾淨就不是什麼困難的事了,YA~~

歡迎推文分享:
Published 21 April 2007 11:19 AM 由 Jeffrey
Filed under: ,
Views: 30,106



意見

# AD said on 09 January, 2008 04:14 AM

thanks!

# johnchin said on 16 September, 2008 04:30 AM

請問此「潛盾機」有提供下載嗎?謝謝

# Jeffrey said on 16 September, 2008 03:49 PM

to johnchin, 請到以下網址下載:

blog2.darkthread.net/.../download.aspx

# 小謙 said on 23 June, 2009 07:48 PM

您好, 請問下載後要如何執行?

# Jeffrey said on 23 June, 2009 08:33 PM

to 小謙, 我猜你的問題是無法解壓縮出執行檔。因為Web Hosting Provider IIS設定及IE Bug的關係(詳見: blog2.darkthread.net/.../4186.aspx),用IE從本站下載的ZIP檔,可能會有無法解壓縮的狀況,你可以改用Firebox/Chrome下載 或 使用7-Zip解壓縮(第一次會先看到一個UnicodeFinder[1],再Double Click它就可以再解出UnicodeFinder.exe)。

# 小謙 said on 23 June, 2009 09:33 PM

Dear jeffrey, 果如您所說, 後來使用firefox就可以順利解壓縮了.

謝謝!

但小妹現在碰到的問題是,"絕"打成"絶" 或 "內"打成"内", 轉入DB會變成?號的問題, 使用您的tool仍然無法辨識出來.

不知您是否有什麼建議方式,可快速檢查出來?

# Jeffrey said on 24 June, 2009 03:56 AM

to 小謙,它的原理是由目前游標所在的位置向下找,找到難字就標成紅底白字,再按一次會繼續再往下找。你如果Copy文字到輸入方格後,記得要將游標移到最前方再按【尋找難字】,我測試的結果,兩個難字都有找到。(這程式應該改良一下,找不到時應提示使用者是否要再從頭找起比較Friendly)

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<April 2007>
SunMonTueWedThuFriSat
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345
 
RSS
創用 CC 授權條款
【廣告】
twMVC
最新回應

Tags 分類檢視
關於作者

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

文章典藏
其他功能

這個部落格


Syndication