基於你所展示的,我猜你可以避免從二進制到列表的轉換,所以io_lib:格式會將二進制轉換爲它的字符串表示。
稍後,您可以檢索使用erl_parse和erl_eval模塊PID:
1> Pid = self().
<0.32.0>
2>
2> String = lists:flatten(io_lib:format("~p.~n",[term_to_binary(Pid)])).
"<<131,103,100,0,13,110,111,110,111,100,101,64,110,111,104,111,115,116,0,0,0,32,\n 0,0,0,0,0>>.\n"
3> %% to get an equivalent form of what you get from sql.
3> {done,{ok,T,_},[]} = erl_scan:tokens([],String,1).
{done,{ok,[{'<<',1},
{integer,1,131},
{',',1},
{integer,1,103},
{',',1},
{integer,1,100},
{',',1},
{integer,1,0},
{',',1},
{integer,1,13},
{',',1},
{integer,1,110},
{',',1},
{integer,1,111},
{',',1},
{integer,1,110},
{',',1},
{integer,1,111},
{',',1},
{integer,1,100},
{',',1},
{integer,1,101},
{',',1},
{integer,...},
{...}|...],
3},
[]}
4> {ok,Tree} = erl_parse:parse_exprs(T).
{ok,[{bin,1,
[{bin_element,1,{integer,1,131},default,default},
{bin_element,1,{integer,1,103},default,default},
{bin_element,1,{integer,1,100},default,default},
{bin_element,1,{integer,1,0},default,default},
{bin_element,1,{integer,1,13},default,default},
{bin_element,1,{integer,1,110},default,default},
{bin_element,1,{integer,1,111},default,default},
{bin_element,1,{integer,1,110},default,default},
{bin_element,1,{integer,1,111},default,default},
{bin_element,1,{integer,1,100},default,default},
{bin_element,1,{integer,1,101},default,default},
{bin_element,1,{integer,1,64},default,default},
{bin_element,1,{integer,1,110},default,default},
{bin_element,1,{integer,1,111},default,default},
{bin_element,1,{integer,1,104},default,default},
{bin_element,1,{integer,1,111},default,default},
{bin_element,1,{integer,1,115},default,default},
{bin_element,1,{integer,1,...},default,default},
{bin_element,1,{integer,...},default,...},
{bin_element,1,{...},...},
{bin_element,1,...},
{bin_element,...},
{...}|...]}]}
5> {value,Res,[]} = erl_eval:exprs(Tree,[]).
{value,<<131,103,100,0,13,110,111,110,111,100,101,64,110,
111,104,111,115,116,0,0,0,32,0,0,0,0,0>>,
[]}
6> Pid = binary_to_term(Res). %% that's it :o)
<0.32.0>
我強烈*建議您仔細想想爲什麼你認爲你需要做到這一點。 – zxq9 2015-04-01 12:15:39