尝试使用ruamel.yaml将big-list-of-naughty-strings加载到Python中(以测试API的字符集)。
除了2行:115和120(在json版本中为94和95)外,其他所有程序都正常加载。
在注释中,它们被描述为“非空白C0控件”和“非空白C1控件”。
示例:
>>> from ruamel.yaml import YAML
>>> ruamel_yaml = YAML()
>>> ruamel_yaml.load('\u000f')
...
ruamel.yaml.reader.ReaderError: unacceptable character #x000f: special characters are not allowed
in "<unicode string>", position 0
想知道这可能是错误还是预期的行为。
答案 0 :(得分:1)
您似乎没有参考YAML规范中的character set chapter:
允许的字符范围明确排除了C0控制块#x0-#x1F(允许的TAB#x9,LF #xA和CR #xD除外),DEL#x7F,C1控制块#x80-# x9F(允许的NEL#x85除外),代理块#xD800-#xDFFF,#xFFFE和#xFFFF。
第115行是C0控件,第120行是C1控件,因此这些行不加载也就不足为奇了。