[英]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.