unicode字符集,用還是不用

2021-09-10 12:40:41 字數 1973 閱讀 8036

使用vc開發時面對字符集的選擇,我總想起《深入淺出mfc》裡的一句名言:理想如果不向實際做點妥協,理想就會歸於塵土。曾經想過完美的軟體肯定是使用unicode字符集,因為那是實現多語言版本所需要的。《windows核心程式設計》也列出一堆理由勸我們使用unicode字符集,最大的好處當然是軟體本地化的需要,另外一些好處是:

1.可以很容易地在不同語言之間進行資料交換。

2.使你能夠分配支援所有語言的單個二進位制.exe檔案或dll檔案。

3.提高應用程式的執行效率

微軟實際上也大力推行unicode的,比如從vs 2003開始vc方面的專案都是預設使用unicode字符集。但是在公司實際開發中我記憶中沒有用過unicode字符集,都是使用多位元組字符集。究其原因,在於兼顧歷史。試想系統基本基於以前的多位元組字符集的底層模組和多位元組字符集的開源庫,誰有勇氣將其改用unicode字符集一一重新編譯呢?即使有勇氣,其潛在的不確定風險也實在太大了。而《windows核心程式設計》列出的一些理由,近似理想境界的:軟體的多語言版本對於國內大多數軟體更像乙個有點遙遠的夢想,所謂unicode版本比多位元組版本執行得更快,在硬體飛快發展的今天估計只存在於理論之中,這種細微差別使用者基本上不會察覺,更提不上構成效率瓶頸。

但是,我們真的不需要unicode嗎?萬一我們真的需要推出多語言版本呢,那時我們估計一邊修改由於字符集不相容的部分**一邊想:要是一開始就使用unicode字符集該多好啊!想到這,我想我們現在能做的估計就是下面這些:

1.在開發之初就評估一下開發多語言版本的必要性,如果在多語言版本在不遠的將來就計畫推出,就應早作準備,比如底層不動,上層介面層採用unicode字符集,這樣只需改動上層呼叫底層的介面(就是將unicode字元轉換為多位元組字元傳給底層介面)。

2.  在開發過程中盡量採用相容多位元組字符集和unicode字符集的型別和函式(這裡我說的是windows環境下的開發),比如字元型別採用tchar,字串使用_t巨集包含。這樣日後的多位元組轉unicode的改造的工作量就會少許多。

再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!

使用vc開發時面對字符集的選擇,我總想起《深入淺出mfc》裡的一句名言:理想如果不向實際做點妥協,理想就會歸於塵土。曾經想過完美的軟體肯定是使用unicode字符集,因為那是實現多語言版本所需要的。《windows核心程式設計》也列出一堆理由勸我們使用unicode字符集,最大的好處當然是軟體本地化的需要,另外一些好處是:

1.可以很容易地在不同語言之間進行資料交換。

2.使你能夠分配支援所有語言的單個二進位制.exe檔案或dll檔案。

3.提高應用程式的執行效率

微軟實際上也大力推行unicode的,比如從vs 2003開始vc方面的專案都是預設使用unicode字符集。但是在公司實際開發中我記憶中沒有用過unicode字符集,都是使用多位元組字符集。究其原因,在於兼顧歷史。試想系統基本基於以前的多位元組字符集的底層模組和多位元組字符集的開源庫,誰有勇氣將其改用unicode字符集一一重新編譯呢?即使有勇氣,其潛在的不確定風險也實在太大了。而《windows核心程式設計》列出的一些理由,近似理想境界的:軟體的多語言版本對於國內大多數軟體更像乙個有點遙遠的夢想,所謂unicode版本比多位元組版本執行得更快,在硬體飛快發展的今天估計只存在於理論之中,這種細微差別使用者基本上不會察覺,更提不上構成效率瓶頸。

但是,我們真的不需要unicode嗎?萬一我們真的需要推出多語言版本呢,那時我們估計一邊修改由於字符集不相容的部分**一邊想:要是一開始就使用unicode字符集該多好啊!想到這,我想我們現在能做的估計就是下面這些:

1.在開發之初就評估一下開發多語言版本的必要性,如果在多語言版本在不遠的將來就計畫推出,就應早作準備,比如底層不動,上層介面層採用unicode字符集,這樣只需改動上層呼叫底層的介面(就是將unicode字元轉換為多位元組字元傳給底層介面)。

2.  在開發過程中盡量採用相容多位元組字符集和unicode字符集的型別和函式(這裡我說的是windows環境下的開發),比如字元型別採用tchar,字串使用_t巨集包含。這樣日後的多位元組轉unicode的改造的工作量就會少許多。

Unicode字符集和多字符集

由於各國語言的加入,ascii已經不能滿足資訊交流的需要,因此,為了能夠表示其它國家的文字,各國在ascii的基礎上制定了自己的字符集,它們正式的名稱應該是mbcs multi byte chactacter system,即多位元組字元系統 型別說明 unicode ansi 通用型別 字元wch...

雜記 Unicode字符集

unicode是字符集,但是微軟在windows上把unicode視為utf 16,即乙個字元佔2個位元組16位。utf 16是unicode的一種編碼規則,與此同時還有utf 8 utf 32。utf 8將一些字元編碼為1個位元組,一些字元編碼為2個位元組,一些字元編碼為3個位元組,一些字元編碼為...

Unicode字符集詳解

一句來自 三國 中的話 分久必合合久必分,各個字符集之間也存在的分久必合的現象。隨著國際標準iso10646規定的通用字符集 ucs,全稱universal mutiple octet doded character set 的發布,各種字符集之間不統一和諧的問題就得到了改觀。utf編碼,全稱是un...