【发布时间】:2018-04-05 08:54:10
【问题描述】:
在 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"。
感谢您的帮助:)
【问题讨论】:
-
对应于documentation,这个序列不会转义,所以如果您需要其他行为,只需编写自己的转换函数。
-
您可能希望使用
~n而不是\n——因为erlang 会将~n转换为程序运行所在操作系统的正确换行符序列。与其他语言不同,erlang 不对\n进行任何换行符转换。