我有一个带有英镑符号的yaml文件 -
amount: "£50"
当我访问该符号时,它返回以下内容:
"£50"
我正在使用hashie:mash加载并访问我的yaml ...欢迎提出想法,在网站上找不到任何可以提供直接解决方案的内容(或者至少有一个适合我的方式)
答案 0 :(得分:1)
外部编码是你的问题; Ruby假设从外部文件读取的任何数据都是CP-850,而不是UTF-8。
您可以通过以下几种方式解决此问题:
Encoding.default_external ='utf-8'
。这将告诉Ruby默认将文件读取为UTF-8。open('file.yml', 'r:utf-8')
你可以通过String#force_encoding
来做到这一点,它告诉Ruby用不同的编码重新解释原始字节:
text = open("file.yml").read
text.force_encoding("utf-8")
YAML.load text