我有这个YAML数据:
- data.yml*
game:
welcome: Welcome to \e[34myour\e[0m new chess game players.\n\n
我成功地访问了:
puts data['game']['welcome']
然而,当输出到终端时,ANSI转义字符格式化和换行符格式化都不起作用。它只是按字面意思打印出所有的字符。我试过/检查过:
- terminal使用UTF-8编码,并且当直接用于ruby程序上的字符串字符时,会打印ansi转义格式。
- 尝试用另一个
\
字符转义转义字符,例如\e[34myour\e[0m.这不管用
你知道我怎么才能让它工作吗?谢谢
1条答案
按热度按时间ktca8awb1#
YAML只允许双引号标量中的转义字符序列。参见YAML规范的第5.7节 * 转义字符 *[***粗体斜体***强调我的]:
5.7.转义字符
所有不可打印的字符必须 * 转义 。YAML转义序列使用大多数现代计算机语言通用的“
\
”表示法。每个转义序列都必须解析为相应的Unicode字符。原始转义序列是表示细节,不得用于传达内容信息。请注意,转义序列只在双引号标量中解释。在所有其他标量样式中,“
\
”字符没有特殊含义并且不可打印字符不可用*。