页面中文内容提交后添加到数据库之前已变成
乱码,Webconfig和页面的编码根据论坛里的各种方法都设置过结果只是
乱码不一样。有没有解决过这种问题的朋友帮帮忙。服务器那边的编码好像是iso-8859-1。
---------------------------------------------------------------
对,n开头的
1.nchar(n) : 存储固定长度的双字节数据
2.nvarchar(n): 存储可变长度的双字节数据
3.ntext : 长度走过4000字符时用
---------------------------------------------------------------
你的插入语句应该类似下面:
1、如果使用的是拼接字符串的方式那么在插入的数据前面应该加N'插入的值'。
2、如果使用的是SqlParameter的方式则需要指定参数类型为对应的n型,也就是要制定为Nvarchar等类型即可。
如果它的服务器不支持unicode那么你怎么做都应该没有用,这种情况下自己做编码转换简直不现实。
---------------------------------------------------------------
我觉得这样的编码问题在数据库之外解决可能稍好些。
你可以用文化定义,如:
你也可以用Convert.ToEncoding()或者安装国际化字体(约200MB)的方法来解决,但都必须在计算机上安装编码支持文件才可以在基于.NETFRAMEWORK的程序中编码,如国标可以去 http://www.microsoft.com/china/windows2000/downloads/18030.asp下载.
同时,你还可以在程序代码的线程中规定界面文化和当前文化设置来让各个客户端从服务器获取到你指定的地区文化值:
以上代码将当前UI文化定义为英文,当前文化设置为中文,如果你的用户全用中文.你也可以都设成中文.
其他有不明白的看看MSDN相关的C#字符串国际化方面的介绍,说的很详细.
服务器不可能不支持unicode,全部写成unicode就可以了。文件字符集也是unicode。
insert into 要加上N, 或者写成存储过程。
语言包是必要的,要是英文系统上没有中文字体的话就没法显示中文了
---------------------------------------------------------------
对,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, 或者写成存储过程。
语言包是必要的,要是英文系统上没有中文字体的话就没法显示中文了