摘要:.net- Unicode編碼無法正常顯示在TextBox上?
一般來說 Unicode 編碼可以直接正常顯示在網頁上~
例如瀏覽器看到 "に",就會將它轉換成「に」,使用者就能看到正確的字元了,但在TextBox上卻不行!
所以小弟去爬了一下文,發現解決方法可以使用 TextBox1.Text = Server.HTMLDecode("に") 就可以正常顯示了!
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("に") // 正常顯示 'に'
11
12 }
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("に") // 正常顯示 'に'
11
12 }
PS:
ASP.NET 的 GridView 控制項預設也會針對網頁環境而將欲顯示的字串做 HTML 編碼的動作,如果不將欄位物件(BoundField)的 HtmlEncode 屬性設為 False,在顯示上述舊系統的資料時就會看到 "に" 而不是「に」。
GirdView 還好辦,TextBox 控制項就麻煩了,因為它預設會自動處理 HTML 編碼形式的 Unicode 字串,卻沒有提供 HtmlEncode 屬性。
小弟目前測試Label 不轉換也可以正常顯示。