/ / / / / /

上一篇 下一篇 同標題 發表文章 文章列表

作者  weihan (天天天藍) 站內  CPP_DS
標題  Unicode 內的字符順序
時間  2014/01/09 Thu 11:00:43

unicode 包含許多語言文字,如同 ASCII 一樣,若要知道某個字符的編號
可以使用 static_cast 來決定。

例如:以下是 ASCII 的字符及其編號順序:

char  ch1 , ch2  ;
int   n ;

ch1 = 'a' ;
n = static_cast<int>(ch) ;
cout << ch1 << " " << n << endl ;  // 印出: a 97

ch2 = static_cast<char>(n) ;
cout << ch2 << " " << n << endl ;  // 同上

同樣的若 unicode 是使用 UTF-8 編碼實作方式,也有類似的用法。

wchar_t  wch1 , wch2 ;
int n ;

wch1 = L'河' ;
n = static_cast<int>(wch1) ;
wcout << wch1 << " " << n << endl ;  // 印出: 河 27827

wch2 = static_cast<wchar_t>(n) ;
wcout << wch2 << " " << n << endl ;  // 同上


ps:去年我是使用:
    n = *reinterpret_cast<int*>(&wch1) ;
    wch2 = *reinterpret_cast<wchar_t*>(&n) ;
    這樣複雜許多


--
===================================================================
*               人生的意義 : 盡責任  負責任                      *
*               人生的目的 : 受報  還願  行善                *
*               人生的價值 : 奉獻  付出                        *
================================================== 聖嚴法師  語 ===

--
發信站 [中央數學  織夢天堂 bbs.math.ncu.edu.tw]
  •FROM [weihan 從 ziyou4.math.ncu.edu.tw 發表]
→ firejox :UTF-8是不定長度編碼 wchar_t存的是寬字元 這兩者是不同的 14/01/10
→ firejox :wide character 不代表任何一種編碼  它是會跟環境有關    14/01/10
→ weihan :對,當然需要設 setlocale                                14/01/10

上一篇 下一篇 同標題 發表文章 文章列表