---------------------------------------------------------------
對,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, 或者寫成存儲過程。
語言包是必要的,要是英文系統上沒有中文字體的話就沒法顯示中文了