close

三日不讀書 便覺 面目可憎 一周學新功能,知識缺乏。哈哈

今天在寫windows form的時候,遇到一個問題,這個問題是寫web form不會遇到的

就是unicode要在textbox顯示的問題

早期公司的程式是用asp寫的,讓大陸也能使用,當輸入簡體字的時候,在使用上網頁顯示都是正常

原因是瀏覽器可以自動轉換unicode,讓使用者無痛使用。

但是如果是在windows form 當中,要顯示這個字元就沒有這麼簡單了

找了好久,終於找到有好心人士用c#整理了一份資料,太感謝

http://huan-lin.blogspot.com/2009/02/unicode.html

我就轉換成VB的FUNCTION跟大家分享

第一步 要先匯入兩個元件

Imports System.Text.RegularExpressions
Imports System.Text

第二步 建立方法

  Public Shared Function UnicodeEntityToChar(ByVal entity As String) As Char
        Dim code As Integer = Convert.ToInt32(entity.Substring(2, entity.Length - 3))
        Return Convert.ToChar(code)
    End Function
    Public Shared Function FindUnicodeEntities(ByVal s As String) As MatchCollection
        Dim pattern As String = "&\#[0-9]{1,5};"
        Dim regex As Regex = New Regex(pattern)
        Dim matches As MatchCollection = regex.Matches(s)
        Return matches
    End Function

    Public Shared Function ReplaceUnicodeEntityToChar(ByVal s As String) As String
        Dim result As StringBuilder = New StringBuilder(s)
        Dim matches As MatchCollection = FindUnicodeEntities(s)

        ' Note: 不可從第一個符合的項目開始替換字串,須倒著處理.
        Dim i As Integer
        For i = matches.Count - 1 To 0 Step i - 1
            Dim m As Match = matches(i)
            result.Remove(m.Index, m.Length)
            result.Insert(m.Index, UnicodeEntityToChar(m.Value))
        Next
        Return result.ToString()
    End Function

第三步 使用方式

   MsgBox(ReplaceUnicodeEntityToChar( "倲南科達公司"))

結果

感謝專家的分享!!!

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 iron17kimo 的頭像
    iron17kimo

    高級資深低薪程式設計師

    iron17kimo 發表在 痞客邦 留言(0) 人氣()