在 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"
。
感谢您的帮助:)
最佳答案
'a' 不是控制字符,因此“\a”产生与“a”相同的字符串。如果您确实希望结果中包含反斜杠,则需要转义反斜杠本身:"str\\aing"
。
如果您希望结果始终是平面字符串而不是嵌套的 io-list(如上一个示例中所示),请使用 lists:flatten(io_lib:format(...))
。
关于erlang - Erlang 中的控制字符转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49668104/