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語言的位元組問題,程式設計c語言位元組的問題
位元組 char int double long等都是c裡的資料型別。10位數 8位數 16位數等都是數制,稱10進位制,8進位制,16進位制。一個位元組用8個位來表示。即可以存放從0000 0000 0000 0001 0000 0010到1111 1111共2的八次方的數。double標量八個位...
C語言當中的檔案包含如何處理,C語言當中的檔案包含如何處理
檔案包含處理是指在一個原始檔中,通過檔案包含命令將另一個原始檔的內容全部包含在此檔案中。在原始檔編譯時,連同被包含進來的檔案一同編譯,生成目標,目標檔案。print format.h 確實過長 改短點pr d1,a,多了一個逗號 然後是main函式沒有型別,要麼在mian前面新增void,要麼在最後...
在c 中stdio h檔案哪個檔案的預處理檔案 如題謝謝了
stdio.h就是指 standard input output 意思就是說標準輸入輸出標頭檔案!所以了,用到標準輸入輸出函式時,就要呼叫這個標頭檔案!呼叫 include或 include stdio.h 需要預處理的語句 int getch 從標準輸入裝置讀入一個字元,不顯示 int putch...