我与木偶文件编码地狱。 即使是最简单的尝试不起作用:编码地狱木偶
hiera-data/test.yaml:
---
test: Äñö
init.pp:
$test = hiera('test')
file { "/root/encoding.txt":
ensure => file,
content => $test
}
的傀儡服务器一切
看起来不错:
puppet:~ # file -i /etc/puppetlabs/puppet/hiera-data/env/test.yaml
/etc/puppetlabs/puppet/hiera-data/env/test.yaml: text/plain charset=utf-8
puppet:~ # cat /etc/puppetlabs/puppet/hiera-data/env/test.yaml
---
test: Äñö
puppet:~ # locale
LANG=POSIX
LC_CTYPE=en_US.UTF-8
的傀儡代理:
puppet-test:~ # locale
LANG=POSIX
LC_CTYPE=en_US.UTF-8
运行后:
puppet-test:~ # file -i encoding.txt
encoding.txt: text/plain charset=utf-8
但是:
更新:这里由约翰在评论中问道,十六进制数据(与vi :%!xxd
查看它):
0000000: efbf bdef bfbd efbf bdef bfbd efbf bdef ................
0000010: bfbd 0a ...
更新:如要求在评论Peter直接运行hiera并没有提供任何进一步的见解。特别是,我只能在服务器上尝试它,因为代理没有源代码。
我的环境是相当过时了,但我不允许使用任何新的版本(至少目前还没有,没有任何正当理由):
- 的SuSE Enterprise Linux的11 Service Pack 3的
- 木偶企业3.8.6
- PE-红宝石1.9.3.551-9.pe.sles11
我将不胜感激任何了解这个问题!
非常感谢提前
你确定,这个问题是不是你的终端?在十六进制编辑器中(或在二进制/十六进制模式的文本编辑器中)打开'encoding.txt'并检查文件是否包含正确的字节。特别是,你所提供的字符串的UTF-8编码将由这六个字节组成:'c3 84 c3 b1 c3 b6'。如果它包含不同的内容,请将其添加到您的问题中。 –
我更新了信息丢失的问题,谢谢@JohnBollinger – mmoossen
第二次看在这之后,这似乎并不像一个傀儡问题。这看起来像是一个系统环境问题。 –