對於此代碼:
Encoding.ASCII.GetBytes("‚")
我希望輸出爲130,但是這給了我63
我打字可以使用Alt + 0130的字符串。
對於此代碼:
Encoding.ASCII.GetBytes("‚")
我希望輸出爲130,但是這給了我63
我打字可以使用Alt + 0130的字符串。
在我的設置:
Encoding.ASCII.GetBytes("‚"); // 63
Encoding.Default.GetBytes("‚"); // 130
過程中「默認」,很可能是環境依賴性...
當您嘗試使用ASCII編碼來編碼字符串,它將會被轉換因爲在ASCII字符集中沒有這樣的字符,所以將其添加到問號中。問號的字符代碼爲63.
您需要使用支持該字符的編碼才能得到它的實際字符代碼。
按照David的說法,一種選擇是使用Encoding.Default
屬性獲取系統代碼頁的編碼。但是,由於系統代碼頁可能有所不同,因此不能保證在所有計算機上都提供相同的結果。
的Unicode字符代碼是8218,您可以通過簡單的字符轉換爲int得到:
int characterCode = (int)'‚';
由於這是不依賴於任何系統設置,你應該考慮,如果你可以使用,而不是的編碼字節值。
實際上,存儲的代碼','存儲在數據庫中,它是一個遺留系統。所以幾乎沒有什麼可以做的。我希望'130'存儲在數據庫中。 – nullDev 2010-04-08 14:40:45
您必須擁有不尋常的鍵盤佈局。也許不是拉丁字母?獲得63是正確的,逗號爲ASCII *和* Unicode代碼。 – 2010-04-07 11:55:42