控制在Erlang中转义的字符

时间:2018-04-05 08:54:10

标签: erlang control-characters

在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"

感谢您的帮助:)

1 个答案:

答案 0 :(得分:2)

'a'不是控制字符,因此“\ a”产生与“a”相同的字符串。如果你真的想在结果中使用反斜杠,你需要转义反斜杠本身:"str\\aing"

如果您希望结果始终是扁平字符串而不是嵌套的io列表,请使用lists:flatten(io_lib:format(...)),如上例所示。