關於unicode程式設計的乙個問題
網路上關於
unicode
或寬位元組程式設計的介紹很多
,為什麼要這樣的的原因介紹的也很多
,下面我們就從實用的角度出發
,來看一下如果不採用
unicode
或者寬位元組程式設計會給我們帶來的乙個問題
.
我們通過一段**來演示不採用
unicode
和採用了之後所產生的不同結果
.
先看沒有採用
unicode的:
#include
#include
#include
void
main()
;
strcpy(hz,"
張");
for(int k=0;k
printf("/n");
for(int i=0;i<2;i++)
}
}
輸出結果為:
ffffffd5ffffffc5
str *****=
欽佩ffffffc7ffffffd5ffffffc5ffffffe5
str *****=
惱怒ffffffc4ffffffd5ffffffc5ffffffad
不難看出
,由於單位元組的字串處理函式是按乙個位元組乙個位元組處理的,在
」欽佩」和
」惱怒
」兩個字串中都含有
ffffffd5ffffffc5("張"
),所以輸出結果為這兩個字串中都含有
"張"這個字串.
再來看看採用了寬位元組的:
#include
#include
#include
#include
void
main()
;
wcscpy(hz,l"
張");
for(int k=0;k
wprintf(l"/n");
for(int i=0;i<2;i++)
}
}
輸出結果:
5f
20
這樣,對字串的處理就不再出現誤判的情形.
在實際程式設計中
,需要處理漢字的部分多集中在介面處理部分
,當然在後台程式中也可能會涉及
乙個關於Unicode字元編碼的奇怪問題
有乙個學員問了乙個關於unicode字元編碼的奇怪問題。問題如下 string strchina 中國 1 直接把每個字元中的內容對應著的整數列印出來,顯示的結果就是這個字元的unicode碼,則下面的 for int i 0 i 列印出的結果是 4e2d 56fd 2 下面的 byte buf s...
乙個關於Unicode字元編碼的奇怪問題
有乙個學員問了乙個關於unicode字元編碼的奇怪問題。問題如下 string strchina 中國 1 直接把每個字元中的內容對應著的整數列印出來,顯示的結果就是這個字元的unicode碼,則下面的 for int i 0 i 列印出的結果是 4e2d 56fd 2 下面的 byte buf s...
乙個關於Unicode字元編碼的奇怪問題
問題如下 string strchina 中國 1 直接把每個字元中的內容對應著的整數列印出來,顯示的結果就是這個字元的unicode 碼,則下面的 for int i 0 i 列印出的結果是 4e2d 56fd 2 下面的 byte buf strchina.getbytes unicode fo...