Solidity
有什麼方法可以將組成字節的字元轉換為字元串?
例如,如果我有一個 bytes4 變數為“0xabcd1122”,有沒有辦法將其轉換為值為“abcd1122”的字元串?我之所以問,是因為我想為令牌符號分配一個唯一標識符,但是當我將字節轉換為字元串時,結果不適合 utf-8 編碼,從而導致輸出出現亂碼。如果將組成字節變數的字元轉換為字元串不起作用,是否有人知道將唯一標識符生成為字元串?
這是一個功能:
function getHexString(bytes4 value) pure public returns (string) { bytes memory result = new bytes(8); string memory characterString = "0123456789abcdef"; bytes memory characters = bytes(characterString); for (uint8 i = 0; i < 4; i++) { result[i * 2] = characters[uint256((value[i] & 0xF0) >> 4)]; result[i * 2 + 1] = characters[uint256(value[i] & 0xF)]; } return string(result); }
你可以在這裡試試:https ://ethfiddle.com/726_Ju8bse 。