通過檔案進行通訊的,可能遇上的問題就是檔案中的字元出現亂碼的問題。在網上也找了很久資料,一般都是字串轉換成十六進製制,很少有轉換回來的。首先根據使字符集格式分為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, charc_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 ...