.net- Unicode 編碼無法正常顯示在 TextBox上?

摘要:.net- Unicode編碼無法正常顯示在TextBox上?

一般來說 Unicode 編碼可以直接正常顯示在網頁上~
例如瀏覽器看到 "&#12395",就會將它轉換成「に」,使用者就能看到正確的字元了,但在TextBox上卻不行!
所以小弟去爬了一下文,發現解決方法可以使用 TextBox1.Text = Server.HTMLDecode("&#12395") 就可以正常顯示了!

01 protected void Page_Load(object sender, EventArgs e)
02 {
03     string s = "に";  // 'に'
04     Label1.Text = s;                // 正常顯示 'に'
05   
06     // TextBox 內建 HTML encoding 功能,反而無法秀出 unicode 代碼所表示的字元.
07     TextBox1.Text = s;  // 顯示 'に'
08   
09     // 經過 HTML Decoding 功能轉換就 ok 了.  
10     TextBox1.Text = Server.HTMLDecode("&#12395")  // 正常顯示 'に'
11
12 }

 
PS:

ASP.NET 的 GridView 控制項預設也會針對網頁環境而將欲顯示的字串做 HTML 編碼的動作,如果不將欄位物件(BoundField)的 HtmlEncode 屬性設為 False,在顯示上述舊系統的資料時就會看到 "&#12395" 而不是「に」。

GirdView 還好辦,TextBox 控制項就麻煩了,因為它預設會自動處理 HTML 編碼形式的 Unicode 字串,卻沒有提供 HtmlEncode 屬性。

小弟目前測試Label 不轉換也可以正常顯示。