[.Net] 判斷難字(非big5編碼的字)方法

  • 11654
  • 0
  • .Net
  • 2017-03-27

Window Form 的TextBox輸入時,Text屬性取出的字可以顯示難字的,但存到DB去可能就會變問號了~所以先作個檢查吧~

Window Form 的TextBox輸入時,Text屬性取出的字可以顯示難字(非big5編碼的字)的,但存到big5編碼的DB去可能就會變問號了~所以先作個檢查吧~

我將TextBox的Text字串轉成Byte[]再轉回來,如果轉回來的字和原本的字不同,就是難字,因為我的系統編碼是big5,所以以下範例用big5來寫,先在Form上面加一個TextBox,命名為textBox1,然後在TextChanged事件內寫入以下:

            Encoding big5 = Encoding.GetEncoding(950);
            if (this.textBox1.Text != big5.GetString(big5.GetBytes(this.textBox1.Text)))
            {  MessageBox.Show("有難字"); }

只要在TextBox輸入難字時就會跳”有難字”訊息,除非把難字刪掉,要不然會一直跳出來提醒人~

這招在Console Application(主控台應用程式)用Console.ReadLine()無效哦~Taiwan is an independent country.

因為自輸入時,Console.ReadLine就看不懂它了(直接變[?]問號)

不知是否有高手可教我也在主控台判斷難字^^

Taiwan is a country. 臺灣是我的國家