Solidity

有什麼方法可以將組成字節的字元轉換為字元串?

  • January 5, 2018

例如,如果我有一個 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 。

引用自:https://ethereum.stackexchange.com/questions/35196