http://www.blueshop.com.tw/board/FUM200410061525290EW/BRD200410192321287T6.html
欄位要宣告成nvarchar(Ms SQL的資料格式),Oracle好像要設定啥東東才支援unicode,這我就不清楚了
MS SQL Server、Access基本上都是將資料存成unicode,IIS應該也要設定一下預設編碼為utf-8
剩下有問題的部份是你的程式,ASP檔案編碼要用UTF-8格式,前端的網頁記得加上charset=big5這玩意,後端的記得加上@CODEPAGE=65001。
輸入法的部份,要確定輸出的編碼是unicode的喔~~像是自然輸入法,
可以設定輸出的碼是哪一種,新注音預設是輸出unicode的,所以你才能夠打出罕用字。
----------------------------------------------------------------------------------------------------------------------------------------------
在 SQL Server 中處理 Unicode 字串常數時,必需為所有的 Unicode 字串加上前置詞 N
http://support2.microsoft.com/?id=239530
在 SQL Server 中處理 Unicode 字串常數時,您必需在所有的 Unicode 字串前加上大寫字母 N 做為前置詞,如《SQL Server 線上叢書》主題<使用 Unicode 資料>所述。「N」前置詞代表的是 SQL-92 標準中的國家語言,且必須為大寫。如果您沒有在 Unicode 字串常數前面加上 N 做為前置詞,則 SQL Server 會在使用字串前,先將其轉換成目前資料庫的非 Unicode 字碼頁。
----------------------------------------------------------------------------------------------------------------------------------------------
SQL Server - Unicode字元儲存與處理方式
http://caryhsu.blogspot.tw/2012_04_01_archive.html
由於各國有各國的語言與文字呈現方式,所以在以往儲存文字時,都會以特定字元碼加以儲存,如繁體中文就使用大五碼(Big5),而簡體中文則使用GB,但由於如果同一個系統中需要處理不同的語系或處理到一些罕用字時,常會有亂碼與處理上的問題,所以後來為了統一所有的字元碼,ISO/IEC 便製定(10646 國際編碼標準) 推出了 Unicode (UTF-8、UTF-16、UTF32),簡稱為萬國碼。
在一般的網頁應用程式上,在字元編碼,前端的網頁中你必須需要指定編碼,否則會以系統的預設值而定,但是在SQL Server中如果需要儲存與處理Unicode字元時,必須符合以下兩個條件。
必須條件:
1. 資料欄位需要支援 Unicode,請使用 nchar,nvarchar,ntext 型態。
2. 查詢Unicode 字串常數需要 N 前置詞,請參考以下文件:
INF:SQL Server 中的 Unicode 字串常數需要 N 前置詞
http://support.microsoft.com/?id=239530
相信大家先前對於上述的處理方式都已有一定的了解,但我最近遇到一個滿特別的情況,使用者有輸入一個罕用字,而在資料庫中因為使用nvarchar的型態,所以儲存的部份一切正常,但是只要查詢條件中有使用到此罕用字時,就會有查詢筆數上的問題,後來經過確認,發現主要是此字是屬於香港增補字符集,所以在處理上必須指定特定的定序,說明如下,其中最令人高興的事,在 SQL Server 2012中特別針對增補字符集推出了一個以 SC 結尾的定序,差別就在於如果你使用一般的定序時,如果有使用到增補字符集,透用LEN的函數查詢時,一個字會變成長度2,而如果使用類似substring進行取字時就會有問題,而Supplementary Character (SC) Collations就是主要用來解決這個問題,所以還沒升級的,動作要快了哦!
----------------------------------------------------------------------------------------------------------------------------------------------
用ADO.NET讀取ORACLE VARCHAR中的BIG5罕用字
http://blog2.darkthread.net/post-2008-10-10-read-tdcc-char-from-oracle-varchar.aspx
http://72.15.222.47/post-2008-12-04-write-user-define-char-to-oracle-varchar2.aspx
沒有留言:
張貼留言