网站建设热线:

028-65585480  65585490
点击这里给我发消息点击这里给我发消息点击这里给我发消息点击这里给我发消息

韩文数据库存取乱码解决方案

发布者:admin  来源:  发布时间:2010-12-10  阅读:1687次

这段时间客户提出要将发布韩文的需求,蛮麻烦的,解决了存入数据库和显示的问题,但是数据修改的时候很麻烦,虽然问题不大,但是很恼人,找了一天了,还是没有很好的解决方案,就自己写了一个,问题是解决了,但是个人认为肯定还有更好的解决方案,希望各位不吝赐教!

一、韩文存入数据库解决方案

1.数据库存储多语言的字段要用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">


二、显示数据库中的韩文

韩文存到数据库中,HTML格式的如:& # 5 1 0 6 4 ;& # 5 3 5 5 2 ;& # 4 5 3 6 7 ; (??? )
我添加到数据库中,显示的时候没有问题,因为用HTML控件就可以解决了,如:DIV,总之在HTML格式下面就能解决的。

三、修改数据库中的韩文

修改数据库中的韩文分二种情况:
1、HTML编辑器:这个就是支持HTML的,所以根本不需要理会就可以直接转换,不需要我们操心
2、对于标题之类的短的文字,我们采用的TextBox中就出现了大问题,他显示不了韩文显示的效果是& # 5 1 0 6 4 ;& # 5 3 5 5 2 ;& # 4 5 3 6 7 ;(??? ),这个我找了很久的解决的方案,都没有解决的。
具体方案如下:
只要TextBox支持HTML格式就OK了,但偏偏TextBox只支持纯文本,HTMLEnCode、HTMLDeCode函数无计可施。

此时我采用一个使用HTML作为中转的方案暂时解决了修改韩文的问题
步骤:
1 前台建立一个服务器端DIV:<div id="txtChg" runat="server"></div>
2 后台将HTML格式数据赋值到DIV上
txtChg.InnerHtml = Dr["sContent"].ToString();
3 隐藏Div:txtChg.Attributes["style"] = "display:none";
4 前台将Div的数值赋给TextBox:onload="javascript:document.getElementById('txtTitle').value = document.getElementById('txtChg').innerHTML"