三日不讀書 便覺 面目可憎 一周學新功能,知識缺乏。哈哈
今天在寫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( "倲南科達公司"))
結果
感謝專家的分享!!!
留言列表