2010-04-07 57 views
3

總之:Alt + Numpad鍵生成哪種編碼?

對於此代碼:

Encoding.ASCII.GetBytes("‚") 

我希望輸出爲130,但是這給了我63

我打字可以使用Alt + 0130的字符串。

+0

您必須擁有不尋常的鍵盤佈局。也許不是拉丁字母?獲得63是正確的,逗號爲ASCII *和* Unicode代碼。 – 2010-04-07 11:55:42

回答

2

在我的設置:

Encoding.ASCII.GetBytes("‚"); // 63 
Encoding.Default.GetBytes("‚"); // 130 

過程中「默認」,很可能是環境依賴性...

2

當您嘗試使用ASCII編碼來編碼字符串,它將會被轉換因爲在ASCII字符集中沒有這樣的字符,所以將其添加到問號中。問號的字符代碼爲63.

您需要使用支持該字符的編碼才能得到它的實際字符代碼。

按照David的說法,一種選擇是使用Encoding.Default屬性獲取系統代碼頁的編碼。但是,由於系統代碼頁可能有所不同,因此不能保證在所有計算機上都提供相同的結果。

的Unicode字符代碼是8218,您可以通過簡單的字符轉換爲int得到:

int characterCode = (int)'‚'; 

由於這是不依賴於任何系統設置,你應該考慮,如果你可以使用,而不是的編碼字節值。

+0

實際上,存儲的代碼','存儲在數據庫中,它是一個遺留系統。所以幾乎沒有什麼可以做的。我希望'130'存儲在數據庫中。 – nullDev 2010-04-08 14:40:45