2017-05-05 17 views
9

tôi đang ở trong danh sách mã hóa địa ngục với con rối. ngay cả những thử đơn giản không hoạt động:Mã hóa địa ngục bằng con rối

hiera-data/test.yaml: 
--- 
test: Äñö 

init.pp: 
    $test = hiera('test') 
    file { "/root/encoding.txt": 
    ensure => file, 
    content => $test 
    } 

trên tất cả mọi thứ máy chủ bù nhìn có vẻ tốt đẹp:

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 

trên đại lý rối:

puppet-test:~ # locale 
LANG=POSIX 
LC_CTYPE=en_US.UTF-8 

sau khi chạy:

puppet-test:~ # file -i encoding.txt 
encoding.txt: text/plain charset=utf-8 

nhưng:

cat encoding.txt

Cập nhật: ở đây dữ liệu HEX hỏi trong các ý kiến ​​của John (xem nó với vi :%!xxd):

0000000: efbf bdef bfbd efbf bdef bfbd efbf bdef ................ 
0000010: bfbd 0a         ... 

Cập nhật: như hỏi trong các ý kiến ​​của Peter, chạy hiera trực tiếp không cung cấp bất kỳ cái nhìn sâu sắc hơn nữa. Đặc biệt, tôi chỉ có thể thử trên Server, vì Agent không có nguồn. enter image description here

môi trường của tôi là khá lỗi thời, nhưng tôi không được phép sử dụng bất kỳ phiên bản mới hơn (ít nhất là chưa, mà không cần bất kỳ lý do chính đáng):

  • SuSE Enterprise Linux 11 Service Pack 3
  • Múa rối Enterprise 3.8.6
  • pe-ruby-1.9.3.551-9.pe.sles11

tôi sẽ đánh giá cao bất cứ cái nhìn sâu sắc cho vấn đề này!

cảm ơn trước

+5

Bạn có chắc chắn rằng vấn đề không phải là thiết bị đầu cuối của bạn? Mở 'encoding.txt' trong trình soạn thảo hex (hoặc trong trình soạn thảo văn bản có chế độ nhị phân/hex) và kiểm tra xem tệp có chứa đúng byte hay không. Cụ thể, mã hóa UTF-8 cho chuỗi bạn trình bày sẽ bao gồm sáu byte này: 'c3 84 c3 b1 c3 b6'. Nếu nó có chứa một cái gì đó khác nhau, sau đó xin vui lòng thêm rằng cho câu hỏi của bạn. –

+0

tôi đã cập nhật câu hỏi với thông tin còn thiếu, Cảm ơn @JohnBollinger – mmoossen

+0

Sau lần xem thứ hai về vấn đề này, điều này dường như không phải là vấn đề con rối. Điều này có vẻ như một vấn đề hệ thống env. –

Trả lời

0

Có LANG = POSIX chắc chắn có thể khiến mọi thứ trở nên khó xử. LANG là cái xác định mã hóa mà giao diện điều khiển hiển thị. Nó thường là mong muốn để có kết nối LANG và LC_TYPE.

Xem: Explain the effects of export LANG, LC_CTYPE, LC_ALL

Và để biết thêm về LANG = POSIX thấy http://pubs.opengroup.org/onlinepubs/7908799/xbd/locale.html#tag_005_002

Ngoài ra, trên một lưu ý không liên quan, Múa rối 3.8 chắc chắn có các khuyết tật trên toàn đúng cách hiển thị và/hoặc sự bền bỉ ký tự unicode. Rất nhiều công việc đã được thực hiện trong Puppet mới xây dựng để hoàn toàn quốc tế hóa (và bản địa hóa) Puppet.

+0

Hi @Sam, xin lỗi nhưng câu trả lời của bạn, cũng không phải các liên kết, cho tôi bất kỳ keo những gì để thử tiếp theo ... dù sao, tôi nhận được kết quả tương tự trên một nút bằng cách sử dụng 'LANG = de_DE.UTF-8'. Nhưng vẫn còn rất nhiều cảm ơn vì đã trả lời ... – mmoossen

Các vấn đề liên quan