這段時(shí)間客戶提出要將發(fā)布韓文的需求,蠻麻煩的,解決了存入數(shù)據(jù)庫和顯示的問題,但是數(shù)據(jù)修改的時(shí)候很麻煩,雖然問題不大,但是很惱人,找了一天了,還是沒有很好的解決方案,就自己寫了一個(gè),問題是解決了,但是個(gè)人認(rèn)為肯定還有更好的解決方案,希望各位不吝賜教!
一、韓文存入數(shù)據(jù)庫解決方案
1.數(shù)據(jù)庫存儲多語言的字段要用NText or Nvarchar,才支持多語言,以unicode存儲
2.Sql語句如 insert table (a) values(N'value')才可以,update也同樣了
3.web頁面要用utf-8編碼,最好加上<META http-equiv="Content-Type" content="text/html; charset=Unicode">
二、顯示數(shù)據(jù)庫中的韓文
韓文存到數(shù)據(jù)庫中,HTML格式的如:& # 5 1 0 6 4 ;& # 5 3 5 5 2 ;& # 4 5 3 6 7 ; (??? )
我添加到數(shù)據(jù)庫中,顯示的時(shí)候沒有問題,因?yàn)橛肏TML控件就可以解決了,如:DIV,總之在HTML格式下面就能解決的。
三、修改數(shù)據(jù)庫中的韓文
修改數(shù)據(jù)庫中的韓文分二種情況:
1、HTML編輯器:這個(gè)就是支持HTML的,所以根本不需要理會就可以直接轉(zhuǎn)換,不需要我們操心
2、對于標(biāo)題之類的短的文字,我們采用的TextBox中就出現(xiàn)了大問題,他顯示不了韓文顯示的效果是& # 5 1 0 6 4 ;& # 5 3 5 5 2 ;& # 4 5 3 6 7 ;(??? ),這個(gè)我找了很久的解決的方案,都沒有解決的。
具體方案如下:
只要TextBox支持HTML格式就OK了,但偏偏TextBox只支持純文本,HTMLEnCode、HTMLDeCode函數(shù)無計(jì)可施。
此時(shí)我采用一個(gè)使用HTML作為中轉(zhuǎn)的方案暫時(shí)解決了修改韓文的問題
步驟:
1 前臺建立一個(gè)服務(wù)器端DIV:<div id="txtChg" runat="server"></div>
2 后臺將HTML格式數(shù)據(jù)賦值到DIV上
txtChg.InnerHtml = Dr["sContent"].ToString();
3 隱藏Div:txtChg.Attributes["style"] = "display:none";
4 前臺將Div的數(shù)值賦給TextBox:onload="javascript:document.getElementById('txtTitle').value = document.getElementById('txtChg').innerHTML"