簡體   English   中英

將特定字符轉換為 int

[英]Convert specific char to int

我有一個特定的字符“š”,我需要它以 wchar_t 類型表示,表示一個 UTF-16 Unicode 字符,因此我可以將它作為 wParam 和 WM_CHAR 消息提供給 Winapi SendMessage 函數。 這個字符的兩字節表示是 byte[] { 97, 1 }

我需要的整數是 154。但是使用下面的代碼我總是得到 353。任何想法如何得到 154 而不是 353?

char ch = 'š';
byte[] charByte = Encoding.Unicode.GetBytes(ch); // reults in byte[] { 97, 1 }

int charInt = BitConverter.ToInt32(charCode, 0); // results in 353, but 154 is correct

可能您正在尋找Win-1252 (不是Unicode ,而是ANSI代碼頁)或類似的編碼:

 byte result = Encoding.GetEncoding(1252).GetBytes('š'.ToString())[0];

 // 154 
 Console.Write(result);

請注意,您應該解碼string ( 'š'.ToString() ) 而不是char

353 是該字符在 UTF-16 中的正確值。 值 154 用於 Windows ANSI 代碼頁之一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM