日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
MSSQL亂碼問題:解決之路(mssql亂碼)

MSSQL亂碼現(xiàn)象在實(shí)際開發(fā)中經(jīng)常出現(xiàn),給開發(fā)者帶來極大挑戰(zhàn),我們當(dāng)然要積極解決這個(gè)問題,下面就來介紹解決mssql亂碼問題的路。

1. 解決數(shù)據(jù)庫亂碼問題

解決MSSQL中亂碼問題,首先應(yīng)知曉數(shù)據(jù)庫字符串是在Unicode存儲的,而程序中發(fā)出的請求默認(rèn)是以ANSI字符集發(fā)出,因?yàn)閁NICODE和ANSI有很大的不同,所以產(chǎn)生了亂碼。因此,解決數(shù)據(jù)庫亂碼的關(guān)鍵就是將程序的請求字符串轉(zhuǎn)換為UNICODE,實(shí)現(xiàn)這一轉(zhuǎn)換的方法有很多,主要包括以下幾種:

A. 使用sys.fn_varbintohexstr函數(shù),將ANSI字符串轉(zhuǎn)換為UNICODE:

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

B. 通過CAST或CONVERT函數(shù),將ANSI轉(zhuǎn)換為UNICODE:

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

2. 解決應(yīng)用層亂碼問題

此外,由于MSSQL在存儲的時(shí)候是以UNICODE字符集進(jìn)行存儲的,且程序?qū)油訟NSI字符集進(jìn)行編碼發(fā)出,所以,程序?qū)咏邮盏降臄?shù)據(jù)也有可能出現(xiàn)亂碼的情況,這個(gè)時(shí)候就需要調(diào)整程序?qū)幼址?,將其設(shè)置為UNICODE。這里以Java和C#為例,可以使用以下代碼來解決亂碼問題:

A. Java程序

String str = “字符串”;

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

PreparedStatement pstmt = conn.prepareStatement(sql);

//設(shè)置字符集為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);

//設(shè)置字符集為UTF-8

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

以上就是解決MSSQL亂碼問題的解決之路,主要包括以下兩個(gè)方面:一是調(diào)整數(shù)據(jù)庫字符串,二是調(diào)整程序?qū)幼址瑢⑵湓O(shè)置為UNICODE。只有全面考慮到1和2兩個(gè)方面,MSSQL亂碼問題才能得到妥善的解決。

香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。


網(wǎng)頁標(biāo)題:MSSQL亂碼問題:解決之路(mssql亂碼)
文章源于:http://www.dlmjj.cn/article/codcjds.html