服务器在国外,中文添加Sqlserver里变成乱码

页面中文内容提交后添加到数据库之前已变成 乱码,Webconfig和页面的编码根据论坛里的各种方法都设置过结果只是 乱码不一样。有没有解决过这种问题的朋友帮帮忙。服务器那边的编码好像是iso-8859-1。  
---------------------------------------------------------------  
 
对,n开头的  
1.nchar(n)      :  存储固定长度的双字节数据  
2.nvarchar(n):  存储可变长度的双字节数据  
3.ntext            :  长度走过4000字符时用  
 
---------------------------------------------------------------  
你的插入语句应该类似下面:  
1、如果使用的是拼接字符串的方式那么在插入的数据前面应该加N'插入的值'。 
复制   保存
INSERT  INTO  table1  (feild1)  
VALUES  (N'插入的值')
  
2、如果使用的是SqlParameter的方式则需要指定参数类型为对应的n型,也就是要制定为Nvarchar等类型即可。  
 
如果它的服务器不支持unicode那么你怎么做都应该没有用,这种情况下自己做编码转换简直不现实。  
---------------------------------------------------------------  
 
我觉得这样的编码问题在数据库之外解决可能稍好些。  
你可以用文化定义,如:  
复制   保存
using  System.Globalization;  

//定义文化并将传进来的字符(随便举了个例子)转换成中国大陆文化的字符格式(GB)
CultureInfo CultureInfoString = new CultureInfo("zh-CN");
string originstring, parsedstring;
originstring = "aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbccccccccccccccc46783@@#Tfdfe";
parsedstring = originstring.ToString(CultureInfoString);
  
           
你也可以用Convert.ToEncoding()或者安装国际化字体(约200MB)的方法来解决,但都必须在计算机上安装编码支持文件才可以在基于.NETFRAMEWORK的程序中编码,如国标可以去 http://www.microsoft.com/china/windows2000/downloads/18030.asp下载.  
同时,你还可以在程序代码的线程中规定界面文化和当前文化设置来让各个客户端从服务器获取到你指定的地区文化值:  
复制   保存
using  System.Globalization;  
using  System.Threading;  
.........  

Threading.CurrentThread.CultureUICulture = new CultureInfo("en");
Threading.CurrentThread.CurrentCulture = new CultureInfo("zh-CN");

 
以上代码将当前UI文化定义为英文,当前文化设置为中文,如果你的用户全用中文.你也可以都设成中文.  
其他有不明白的看看MSDN相关的C#字符串国际化方面的介绍,说的很详细.  
 
服务器不可能不支持unicode,全部写成unicode就可以了。文件字符集也是unicode。  
insert  into  要加上N,  或者写成存储过程。  
 
语言包是必要的,要是英文系统上没有中文字体的话就没法显示中文了 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值