MSSQL乱码问题:解决之路(mssql乱码)

MSSQL乱码现象在实际开发中经常出现,给开发者带来极大挑战,我们当然要积极解决这个问题,下面就来介绍解决mssql乱码问题的路。

1. 解决数据库乱码问题

解决MSSQL中乱码问题,首先应知晓数据库字符串是在Unicode存储的,而程序中发出的请求默认是以ANSI字符集发出,因为UNICODE和ANSI有很大的不同,所以产生了乱码。因此,解决数据库乱码的关键就是将程序的请求字符串转换为UNICODE,实现这一转换的方法有很多,主要包括以下几种:

A. 使用sys.fn_varbintohexstr函数,将ANSI字符串转换为UNICODE:

SELECT sys.fn_varbintohexstr(N’字符串’)

B. 通过CAST或CONVERT函数,将ANSI转换为UNICODE:

SELECT CAST(‘字符串’ as nvarchar(max))

2. 解决应用层乱码问题

此外,由于MSSQL在存储的时候是以UNICODE字符集进行存储的,且程序层往往以ANSI字符集进行编码发出,所以,程序层接收到的数据也有可能出现乱码的情况,这个时候就需要调整程序层字符集,将其设置为UNICODE。这里以Java和C#为例,可以使用以下代码来解决乱码问题:

A. Java程序

String str = “字符串”;

String sql = “select * from table where str=?”;

PreparedStatement pstmt = conn.prepareStatement(sql);

//设置字符集为UTF-8

pstmt.setCharacterStream(1,new InputStreamReader(new ByteArrayInputStream(str.getBytes(“UTF-8”))));

B. C#程序

String str = “字符串”;

String sql = “select * from table where str=@str”;

SqlCommand command = new SqlCommand(sql, conn);

//设置字符集为UTF-8

command.Parameters.Add(“@str”, SqlDbType.NVarChar).Value = str;

以上就是解决MSSQL乱码问题的解决之路,主要包括以下两个方面:一是调整数据库字符串,二是调整程序层字符集,将其设置为UNICODE。只有全面考虑到1和2两个方面,MSSQL乱码问题才能得到妥善的解决。

香港服务器选创新互联,2H2G首月10元开通。
创新互联(www.cdcxhl.com)互联网服务提供商,拥有超过10年的服务器租用、服务器托管、云服务器、虚拟主机、网站系统开发经验。专业提供云主机、虚拟主机、域名注册、VPS主机、云服务器、香港云服务器、免备案服务器等。

名称栏目:MSSQL乱码问题:解决之路(mssql乱码)
新闻来源:http://www.csdahua.cn/qtweb/news20/371770.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网