add string::encode/decode