是的.
用unicode是可以解決.
所有涉及到要存儲中文的字段.全部用nvarchar或者nchar而不是char和varchar.這點要注意了.

解决方案 »

  1.   

    那在程序里要不要做相应的变动?比如SQL语句里要不要进行类型转换?
      

  2.   


    對nchar或者nvarchar的字段插入常量或者變量時前面要加N
    如:insert into tableA (a1) values(N'鐵諾')如果插入的值是從別的表中的nvarchar或者nchar字段導入不要加N
    如:insert into tableA(a1) select b1 from tableB where ......
      

  3.   

    我刚才试了一把,确实可行!不过只是insert时需要加控制N,update时没有做任何变动也可以让间繁体共存,这是巧合还是update时不需要加入N控制。
      

  4.   

    About Unicode
    1. Guide line
    2. OS Setup
    3. MSSQL server setup
    Guide Line:
    目的: 使我們的程式可以正常工作於簡繁體混合的運行環境中.本文將涵蓋涉及程式以及安裝環境的相關問題. Unicode 因為使用兩個byte存放不同文字的編碼,所以可以支持多語言, 即以unicode存放的文字可以顯示成為不同的語言種類,例如: 簡體中文, 繁體中文, 日文, 韓文,等等.
    每個語言中的字符在unicode中都有一定的編碼, 有一點需要注意, 我們就以簡體中文, 和繁體中文為例: 例如 ‘生’這個字, 在簡體中文, 繁體中文中都有, 但是因為簡體中文的”生”,和繁體中文的”生”,寫法一樣, 所以,在unicode 編碼中, “生”這個字的編碼只有一個, 如果寫法不一樣,在unicode 中就會有多個編碼. WindowsNT提供的unicode字元對應表,可以幫助你查看一個字體文件中不同字符得unicode 編碼, 如果你想知道一個字符得unicode, 你可以使用JDK中提供的一個工具 native2ascii.exe 去查看. 想讓我們的系統完全支持, 簡繁體混合得運行環境, 我們需要做到以下幾點:OS Setup
    此處的OS的類型風分兩種 Server 端,和Client 端Client 端支持的類型: 
    Windows 98簡體,
    Windows 98繁體 (需要額外安裝中文字庫,以包含於我們的安裝程式中)Windows NT4.0簡體, 
    Windows NT4.0繁體 (需要額外安裝中文字庫,以包含於我們的安裝程式中)
     
    Windows 2000簡體, 
    Windows 2000繁體 (需要額外安裝中文字庫,以包含於我們的安裝程式中)Windows ME簡體.
    Windows ME繁體 (需要額外安裝中文字庫,以包含於我們的安裝程式中)Server 端支持的OS類型
    Windows NT4.0 Server簡繁體.
    Windows2000簡繁體.MSSQL server setup本文只提供SQL7得做法: SQL7中已經支持了unicode ,就是說如果你表的某個欄位,是使用nvarchar, nchar, or ntext etc, 那麼,存放在這個欄位中的字符將都是使用unicode 編碼.為了更好的支持 Unicode 得處理方式, SQL7 建議:在安裝過程中, 1: code page 選擇 cp936 (這樣可以兼容程序中insert, update sql沒帶 N的部分 如果code page 是cp950 或者 cp1252,則程式中不帶N的insert 和 update 會造成 存入db中的資料不是unicode.2: 如果你在安裝SQL7得過程中code page沒選擇cp936,而是使用了cp950或者cp1252, 那麼請確保你程式中的insert 和update的語句都有N,以保證這些程式插入資料庫的漢字是unicode.
      

  5.   

    謝謝IronPromises(铁诺) ,這個問題也是我一值想解決的。