Solidity

如何將bytes32轉換為字元串

  • April 13, 2022

如何將 a 轉換bytes32為 a string?有沒有人有一個神奇的功能或圖書館呢?

基於最新的編譯器版本 0.4.24,我使用如下。

function convertingToString()public returns(string){
bytes32 memory hw = "Hello World";
string memory converted = string(hw);
return converted;
}

使用顯式轉換來執行它。反過來也是可能的。

對於 0.5.0+ 版本,請使用(從 0.5 到 0.7.2 測試 - 它很可能會在 0.7.2 之後繼續工作):

function bytes32ToString(bytes32 _bytes32) public pure returns (string memory) {
       uint8 i = 0;
       while(i < 32 && _bytes32[i] != 0) {
           i++;
       }
       bytes memory bytesArray = new bytes(i);
       for (i = 0; i < 32 && _bytes32[i] != 0; i++) {
           bytesArray[i] = _bytes32[i];
       }
       return string(bytesArray);
   }

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