Ⅰ sql資料庫Text類型欄位導出oracle數據時亂碼怎麼解決
如果所有導出的全形字元都是亂碼的話,應告逗該是字元集編碼格式不同引起的。需要注意的是要保證導出和導入升友畢時的字元集是統一的,或是子集與超集的關系。吵芹
Ⅱ 怎樣解決SQL資料庫中文亂碼問題
故意設成亂碼是什麼意思?人們只有通過加密來保存在資料庫中,變成亂碼保存是不可能的,如果能有套規則能變成亂碼保存進去的話別人也能反過來編譯。如果是不想中文保存在資料庫中為亂碼,則使用NCHAR或NVARCHAR類型
Ⅲ sql server2005 出現中文亂碼!
如果使用中文請使用數據類型用 nchar 、nvarchar、 ntext 類型,char 、varchar 、text為單位元組格式,1個漢字佔用兩個長度,孝虛而在nchar 、nvarchar、 ntext佔用1個長度,特別是在utf-8下使用char 、巧鄭燃varchar 、text跟容易產生亂碼,叢漏解決辦法就是換數據類型吧。
Ⅳ char和nchar的使用的編碼不一樣,而sqlserver中將欄位的數據類型從char改為nchar,中文為什麼不會亂碼
char(n)表示轎攜談存儲固定長度為n個位元組的字元,一個英文或者標點符號佔用一個位元組,一個中文佔用兩個位元組,所以char(n)可以存放n個英文或者標點符號,或者n/2個中文
nchar數閉碰據類型對每個英文(ASCII)字元都佔用2個位元組,對一個漢字也佔用兩個位元組,所有的字元都佔用2個隱春位元組。
所以不會亂碼滴
Ⅳ 如何解決MSSQL中文數據亂碼問題
b.用查詢分析器進碧李行數據管理,在中文數據前加N,強制轉換編碼,如:insert into test(name,address) values(N'技術',N'易網庫')2.改資料庫的排列規則(collation) a.執行下面sql語句改collation: alter database 資料庫名稱 collate Chinese_PRC_CI_AS b.把所有字元欄位都改成無符號類型,如:nchar,ntext,nvarchar 注意: 1.對首嫌已經亂碼的數據,沒有效果 2.這悔芹遲只針對MSSQL控制台中文亂碼的問題,若是網站亂碼,得進一步檢查文件存儲編碼和顯示編碼的設置。 3.執行下面的sql語句,可以查看當前資料庫的排列規則:
Ⅵ 在導入sql server資料庫時,怎麼老是出現亂碼呀
客戶端和服務端的字元集不一致造成態毀的,調整成一致就行了。
查詢字元集的方法為:
use master
go
select * from syscharsets
go
如果記錄中chinses_prc開頭的都是支持簡體中文的字元集
1. 字元集是支持雙位元組的字元集如中文字元集(Collation name為Chinese_PRC_CI_AS)
<1>. 定義varchar(2)
(1) 正式表
總結:在中文字元集下,定義varchar(x), 不論使用不使用N'',英文字元都佔1個位元組,即可以存x個英文字元; 不論使用不使用N'',中文字元都佔2個位元組,即可以存(x / 2)個中文,select結果為漢字本身,不是亂碼。
(2) 臨時表
總結:在中文字元集下,定義varchar(x), 和正式表表帆納備現一樣;
<2>. 定義nvarchar(2)
(1) 正式表
總結:在中文字元集下,定義nvarchar(x), 不論使用不使用N'',英文字元都佔2個位元組,即可以存x個英文字元; 不論使用不使用N'',中文字元都佔2個位元組,即可以存x個中文,select結果為漢字本身,不是亂碼。
(2) 臨時表
總結:在中文字元集下,定義nvarchar(x), 和正式表表現一樣。
<3>. 類型為varchar時,長度 x 和 datalength()對應,都指位元組大小; 英文len() = datalength();中文len() = datalength() / 2;類型為nvarchar時,長度 x 和 len()對應,都指字元長度。
2. 字元集是支持單位元組的字元集如拉丁字元集(Collation name為Latin1_General_CI_AS)
<1>. 定義varchar(2)
(1) 正式表
總結:在英文字元集下,定義varchar(x),不論使用不使用N'',英文字元都佔1個位元組,即可以存x個英文字元;不論使用不使用N'',中文字元都佔1個位元組,即可以存x個中文,但茄衡只保存前半截中文編碼,所以select結果為亂碼;(特殊:如果使用N'',此時插入的字元數最大為4000)
英文和中文 len() = datalength();
(2) 臨時表
總結:在英文字元集下,定義varchar(x), 不論使用不使用N'',英文字元都佔1個位元組,即可以存x個英文字元;不使用N''時,中文佔1個位元組,可以存x個漢字,但都只存入漢字前半截字元編碼,顯示為亂碼;使用N''時,中文佔2個位元組,只可以存 x/2 個漢字,沒有亂碼,取出仍為漢字,說明在英文字元集下通過使用N''是可以保存漢字的;除用N''保存的中文外,其餘英文和中文 len() = datalength();用N''保存的中文字元len() = datalength() / 2;
<2>. 定義nvarchar(2)
(1) 正式表
總結:在英文字元集下,定義nvarchar(x),不論使用不使用N'',英文字元都佔2個位元組,即可以存x個英文字元;(注意每個字元比varchar用的空間大)不論使用不使用N'',中文字元都佔2個位元組,即可以存x個中文字元,但不使用N''只保存前半截中文編碼,所以select結果為亂碼;使用N''則保存和取出都為漢字本身;
(2) 臨時表
總結:在英文字元集下,定義nvarchar(x), 和正式表表現相同;
<3>. 類型為varchar時,長度 x 和 datalength()對應,都指位元組大小;(臨時表中N''中文字元長度比較特殊;) 類型為nvarchar時,長度 x 和 len()對應,都指字元長度。
二、 使用歸類
拋開不常用的臨時表不談,只看正式表,再加上varchar和nvarchar類型的最大長度,得到以下經驗:
<1> 最大長度問題
1. 在中文字元集下使用varchar,最大長度可定義8000,這個8000是指位元組數(datalength()),即最大可以保存8000個英文字元,4000個中文字元。
特殊:若存入字元N'a',則最大能保存4000個字元,但其所佔空間為4000位元組。
2. 在中文字元集下使用nvarchar,最大長度可定義4000,這個4000是指字元個數(len()),即最大可以保存4000個英文字元,4000個中文字元。
3. 在英文字元集下使用varchar,最大長度可定義8000,這個8000是指位元組數(datalength()),由於中文英文都保存為1位元組,故最大可以保存8000個英文、中文字元。
4. 在英文字元集下使用nvarchar,最大長度可定義4000,這個4000是指字元個數(len()),即最大可以保存4000個英文字元,4000個中文字元。
<2> 文字顯示問題
1. N''要和數據類型nvarchar, nchar一起使用,如果對varchar, char欄位類型強制使用N'',則會產生一些特殊現象,甚至無法控制。
2. 在英文字元集下,想要保存特殊符號字元、中文等雙位元組字元,在定義表結構時要使用nvarchar或者nchar,在保存時要用N''。
3. 在中文字元集下,資料庫系統預設已經可以保存特殊符號字元、中文等雙位元組字元。即使用不使用N'',都按雙位元組處理。但為了統一期間建議,在定義表結構時如果使用nvarchar或者nchar,在保存時要用N'',在定義表結構時如果使用varchar和char,此時不要使用N''操作。
4. SUBSTRING ( expression , start , length ) 。length:是一個整數,指定子串的長度(要返回的字元數或位元組數)。 中文字元集中按字元數取;英文字元集中,char, varchar按位元組數取,nchar, nvarchar按字元數取;
三、 其他參考
使用 Unicode 數據
unicode代碼頁、排序規則、SQL Server 排序規則基礎知識、Windows 排序規則排序樣式、選擇 SQL 排序規則、 DBCS 字元
Ⅶ Sql server出現中文亂碼怎麼辦
1、登錄伺服器打開Microsoft SQL Server Management Studio。
2、陵攔豎在要修改的資料庫上單擊滑鼠右鍵,並選擇逗屬性地。
3、在彈出的衡派資料庫屬性窗口中點擊逗選擇頁地中的逗選項地。
4、將排序規則由默認的SQL_Latin1_General_CP1_CI_AS修改為Chinese_PRC_CI_AS。
5、點擊尺大確定就OK。
varchar修改為nvarchar
char修改為nchar
註:如果無法修改的話,請嘗試關閉所有與此資料庫的連接,實在不行的話請重啟動SQL SERVER服務。
兩種方法:
1:
安裝時不要選 Hide advice configuration options
然後再 Collation designator and order 中選擇 Chinese_PRC 就可以了。
2:
在建表時指明某個欄位的語言
方法 COLLATE Chinese_PRC_CS_AS_WS
示例:
create table test
(
a varchar(255) COLLATE Chinese_PRC_CS_AS_WS NULL,
b varchar(255) COLLATE sql_latin1_general_cp1_ci_as NULL
)
insert test values('中文','中文')
插入後 欄位 a 為 中文 ,b 為 ??
Ⅷ Sql server出現中文亂碼怎麼辦
中文亂碼與數據列的數據類型有關。
亂碼原因:輸入的內容與數據類型不匹配,如數據類型為char,用戶輸入繁體就會出現亂碼情況。
解決方法:將數據類型改為Nchar或Nvarchar。
Ⅸ Sql server出現中文亂碼怎麼辦
使用sqlserver有時會出現中文亂碼,這多半是軟體中編碼設置造成了,只需要修改本地編碼既可以解決問題。
方法:
1、登陸「Microsoft SQL Server Management Studio」,然後選擇對應的資料庫的屬性,打開屬性標簽。
Ⅹ SQL Server 執行語句時出現亂碼
如果是普通的jsp+servlet的開發模式,那麼就在servlet或者jsp頁面中用語句:request.setCharacterEncoding("UTF-8"); 對於其中的編碼,辯埋要和瀏覽器的設置一致,即發送請求的頁面可能的charset是什麼,這里就寫什麼。還有一種方式,是採用過濾器的方式,所謂過濾器就是一種特殊的Servlet機制,當任何數據傳給系統後台的時候都要經過過濾器,因此過濾器是很適合做代碼轉換正悔的,過濾器的例子很多,關鍵字搜索時filter。以上說的都是沒有使用舉灶正框架的,如果使用了框架如struts等,可以採用對應框架的國際化方法來解決,搜索關鍵字是i18n