字串和十六進製制數的相互轉換

2022-03-10 17:16:44 字數 1069 閱讀 2537

通過檔案進行通訊的,可能遇上的問題就是檔案中的字元出現亂碼的問題。在網上也找了很久資料,一般都是字串轉換成十六進製制,很少有轉換回來的。首先根據使字符集格式分為char和wchar_t兩個版本

1. char版本

std::string string_to_hex(const std::string&input)

return

output;

}std::

string hex_to_string(const std::string&input)

return

output;

}

這是從stackoverflow上摘下來的,對於使用ascii字符集的字串來說沒有什麼問題,但對於使用2位元組儲存的字元就無能為力了。

2.wchar_t版本

cstring convertwchartohex(cstring data)

; w2c(ch,c_cn);

static

const

char *hex = "

0123456789abcdef";

for(int i=0;i<2;i++)

}return

sresult;

}

void w2c(wchar_t w_cn, char

c_cn)

cstring converthextowchar(cstring data)

cstring strresult(wstr.c_str());

return

strresult;

}

cstring的format方法能直接格式化成十六進製制的字元,但對於使用utf8的來說就有點問題。因為utf8完美相容ascii,也就是使用單位元組,對於其他的字元,比如漢字,使用的又是雙位元組,所以轉換成的十六進製制就很難判斷源字元是來自於單位元組字元還是雙位元組字元。

這裡使用了cstring,但對於不支援mfc的來說,重寫一下也不是什麼大問題。留到下次更新吧。

iOS十六進製制和字串的相互轉換

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!nsstring dictstring dict jsonfragment 組合成的。用這個就行了。dictstring 十六進製制轉換為普通字串的。nsstring stringfromhexstring nsstring hexstring n...

十六進製制與字串的相互轉換

十六進製制與字串的相互轉換,參考了別人的 convert a string to hex string param string data return hexstring throws n a author tianrenliang since v0.1 2007 11 28 private st...

js字串與十六進製制相互轉換

字串 漢字 轉換為十六進製制 主要使用字串.charcodeat 方法,此方法返回乙個字元的unicode值,再用tostring 16 方法,該方法是先將數字物件轉換為二進位制,再把二進位制轉化為16進製制.var str 牛耀民 var val for var i 0 i str.length ...