我發現了一個解釋爲十六進制的表示解碼成十進制數,但只能通過使用Qt: How to get decimal value of a unicode character in c++C++:將UTF-16字符的十六進制表示爲十進制(如Python的INT(hex_data,16))
由於我不是使用Qt和cout << (int)c
不不工作(編輯:它,如果你正確地使用它實際上沒有工作..!):
如何做到以下幾點:
我得到了它經一些插座傳輸的兩個字符的十六進制表示(只是想出瞭如何獲得六角再版終於..!)出發,按照UTF16-表示雙方合併產:
char c = u"\0b7f"
這將被轉換爲它的utf16十進制值! (看到它在UTF-表http://www.fileformat.info/info/unicode/char/0b7f/index.htm)
這應該是絕對基本的東西,但作爲一個指定的Python開發不得不使用C++的一個項目,我掛這個問題了幾個小時....
在幾乎所有的系統上,字符都不會包含完整的utf16字符。 UTF16是2/4字節,而字符是1。另外,轉換是什麼意思?這些數字在計算機上都以相同的方式表示。 – Nonanon
'char'只有1個字節,如果你使用的是C++ 11及更高版本,你可能想要使用'wchar_t',它在Windows上是2個字節,在Posix上是4個,或者'char16_t'是平臺獨立的。然後,您可以將該變量轉換爲「int」來獲取數值。 –
你是絕對正確的,只是編輯我的問題....兩個字符組合給我這個utf16表示....我只想從「\ 0b7f」(見char表)中獲得十進制值「2943」。 –