1樓:落月
字符集gb18030是有4個位元組的漢字,c#直接讀的話是亂碼,這種情況應該使用windows api提供的函式來解決才行。
1.windows api對gb18030-2000 的支援
下列 windows api 提供對gb18030-2000 的支援。isvalidcodepage(), getcpinfo(), multibytetowidechar() and widechartomultibyte().
具體說明如下:
1) isvalidcodepage(54936) returns true.
2) getcpinfo(54936, lpcpinfo) returns true.
3) multibytetowidechar(54936, 0, lpmultibytestr, cbmultibyte, lpwidecharstr, cchwidechar) 完成gb18030-2000 字串 lpmultibytestr 到 unicode 字串 lpwidecharstr 的轉換。
4) widechartomultibyte(54936, 0, lpwidecharstr, cchwidechar, lpmultibytestr, cbmultibyte, lpdefaultchar, lpuseddefaultchar) 完成unicode 字串 lpwidecharstr 到 gb18030-2000 字串 lpmultibytestr 的轉換。
2. gb18030 函式庫
微軟4位元組字符集編碼支援包 (ms4bsp- microsoft 4-byte character set encoding support package) 提供了六個函式,這六個函式支援多位元組編碼(多達4位元組)的字串。 這些api 是從windows 95/98/me 提供的wchar (unicode) 函式集中精選出來的。函式名與相應的ansi 和wchar(unicode) 函式完全相同,只是字尾的’a’ 或’w’被’l’替代。
這些函式的引數與相應的’a’版本函式的引數介面完全相同。該支援包可使基於936**頁的應用程式向gb18030 或其他4位元組編碼的轉換更加快捷。
ms4bsp 在windows xp 平臺的實現是作為一個簡單的動態連線庫 – ms4bsp.dll。 每一函式都通過呼叫multibytetowidechar() 函式將任何多位元組字串輸入引數轉換為utf-16編碼格式,然後呼叫相應的 ‘w’ 版本的函式,返回該函式的輸出引數。
該動態連線庫假設當前系統中存在相關的字型,輸入法(ime) 和登錄檔的設定資訊。
該函式集中的預設4位元組字元編碼為54936 (gb18030-2000). 將來版本的ms4bl 可能支援其他4位元組編碼。
介面清單:
codebool exttextoutl(
hdc hdc, // handle to dc
int x, // x-coordinate of reference point
int y, // y-coordinate of reference point
uint fuoptions, // text-output options
const rect* lprc, // optional dimensions
lpcstr lpstring, // string
uint cbcount, // number of characters in string
const int* lpdx // array of spacing values
);bool gettextextentexpointl(
hdc hdc, // handle to dc
lpcstr lpszstr, // character string
int cchstring, // number of characters
int nmaxextent, // maximum width of formatted string
lpint lpnfit, // maximum number of characters
lpint alpdx, // array of partial string widths
lpsize lpsize // string dimensions
);bool gettextextentpoint32l(
hdc hdc, // handle to dc
lpcstr lpstring, // text string
int cbstring, // characters in string
lpsize lpsize // string size
);int messageboxl(
hwnd hwnd, // handle to owner window
lpcstr lptext, // text in message box
lpcstr lpcaption, // message box title
uint utype // message box style
);int messageboxexl(
hwnd hwnd, // handle to owner window
lpcstr lptext, // text in message box
lpcstr lpcaption, // message box title
uint utype, // message box style
word wlanguageid // language identifier
);bool textoutl(
hdc hdc, // handle to dc
int nxstart, // x-coordinate of starting position
int nystart, // y-coordinate of starting position
lpcstr lpstring, // character string
int cbstring // number of characters);
2樓:匿名使用者
佔多少個位元組得看你用的是什麼編碼集。
如果是gbk和gb2312的話,確實是兩個位元組,在windows平臺上會是你預期的兩個位元組。
utf8, 它是變位元組的2個3個4個可能都有的.
什麼是程式語言?一共有哪幾種語言?
3樓:賀淑珍光女
計算機語言的種類非常的多,總的來說可以分成機器語言,組合語言,高階語言三大類。
計算機所能識別的語言只有機器語言,即由0和1構成的**。但通常人們程式設計時,不採用機器語言,因為它非常難於記憶和識別。
目前通用的程式語言有兩種形式:組合語言和高階語言。
組合語言的實質和機器語言是相同的,都是直接對硬體操作,只不過指令採用了英文縮寫的識別符號,更容易識別和記憶。
高階語言是目前絕大多數程式設計者的選擇。和組合語言相比,它不但將許多相關的機器指令合成為單條指令,並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆疊、暫存器等,這樣就大大簡化了程式中的指令。同時,由於省略了很多細節,程式設計者也就不需要有太多的專業知識。
高階語言主要是相對於組合語言而言,它並不是特指某一種具體的語言,而是包括了很多程式語言,如目前流行的vb、vc、foxpro、delphi等,這些語言的語法、命令格式都各不相同。
計算機程式語言的程式設計軟體需要什麼語言?
最簡單的程式語言是什麼
4樓:源白鶴
其實最簡單的程式語言是scratch,c和vb一點也不簡單
程式語言一共有多少種?
程式語言是什麼?怎麼學程式語言?
5樓:在會昌山玩滑板的諸葛亮
學程式設計是一個很漫長的過程,不要著急,要理論與實踐想結合,例程書籍也是很重要的,看源**對學習也是很有幫助的,等你學完這門vb語言之後,學習別的語言是非常簡單
什麼是程式語言
6樓:拱富貴顧羅
計算機語言的種類非常的多,總的來說可以分成機器語言,組合語言,高階語言三大類
7樓:匿名使用者
程式語言(programming language)是一種被標準化的交流技巧,用來向計算機發出指令,定義計算機程式,讓程式設計師能夠準確地定義計算機所需要使用的資料,並精確地定義在不同情況下所應當採取的行動的一種計算機語言。
程式語言可以分成機器語言、組合語言、高階語言三大類。計算機領域已發明了上千不同的程式語言,而且每年仍有新的程式語言誕生
如果學會了程式設計,在it行業裡很吃香的。
程式語言與程式設計師有什麼區別?
8樓:匿名使用者
程式語言是一種客觀存在的東西,被程式設計牛人發明以後,逐漸完善就成了一種規則!
程式是通過程式設計人員製作編譯來用來解決問題而形成的,寫程式時候需要程式語言,程式語言在程式設計人員的利用下才成形成程式。
說的有點憋!我個人理解,有理解更深的,請賜教!!!
9樓:張少
漢語和中國人的區別!!!
10樓:雨天零度
程式語言分為高階語言
、組合語言和機器語言,比如c語言就是高階語言。那c語言舉例,程式語言跟法語德語一個道理,不一樣的是法語德語是用於我們跟法國人德國人交流,而程式語言是我們跟機器交流的語言類。
可以吧程式解釋為機器讀得懂的文章。高階語言寫的命令轉換成組合語言再編譯成機器語言就成了程式。就像漢語寫成一篇文章轉換成德語的,德國人才看的懂。
程式語言都有哪些?
11樓:小其我的世界
快速瞭解6個程式語言
c語言的預處理命令問題
huge可以看作是一種註釋 可以理解為 char huge graphbuffer int huge size int huge i 這樣雖然這些變數都有不同的作用,但是都有一個共同的目的,在c語言的很多標頭檔案中經常看到這種應用 例如void far cdecl farrealloc void f...
請教有關c字串的處理,請教C 字串處理的問題,字串中間可能包含若干個空格,要求寫個程式將空格轉化為相應的數字
反轉字串 string str console.readline char chr str.tochararray array.reverse chr string strarr array.convertall chr,delegate char c str string.join strarr ...
C語言字串結尾的 0 佔幾個位元組?
0 本身佔一個位元組的空間,但是不算在字串長度內。1一個位元組 sizeof 可以檢視字串所佔位元組數。0 是字串結束的標誌,ascii是0 所佔位元組長度是和char一樣的長度,1個位元組。c語言中abc 0defgh佔多少位元組?字串abc 0defgh,一共佔10個位元組。首先,c語言中每一個...