在Erlang中转义控制字符的正确方法是什么?
我做:
[EscapedString] = io_lib:format("~p", [Str]).
它符合我期望的\t
和\n
字符:
io_lib:format("~p", ["str\ning"]).
["\"str\\ning\""]
但\a
:
io_lib:format("~p", ["str\aing"]).
["\"straing\""]
和
io_lib:format("~p", ["a\x07"]).
[[91,["97",44,"7"],93]]
我需要获取"\"str\\aing\""
字符串,并且在文件中它应该看起来像"str\aing"
。
感谢您的帮助:)
答案 0 :(得分:2)
'a'不是控制字符,因此“\ a”产生与“a”相同的字符串。如果你真的想在结果中使用反斜杠,你需要转义反斜杠本身:"str\\aing"
。
如果您希望结果始终是扁平字符串而不是嵌套的io列表,请使用lists:flatten(io_lib:format(...))
,如上例所示。