Tôi đang sử dụng Ruby để đọc và sau đó in tệp thành giá trị cao, chuyển hướng đầu ra tới tệp trong Windows PowerShell.NUL-byte giữa mỗi ký tự khác trong đầu ra
Tuy nhiên, khi tôi kiểm tra các tập tin, tôi có được điều này cho đầu vào:
PS D:> head -n 1 .\inputfile
<text id="http://observer.guardian.co.uk/osm/story/0,,1009777,00.html"> <s> Hooligans NNS hooligan
, , , unbridled JJ unbridled passion NN passion
- : - and CC and no DT no executive JJ executiv
e boxes NNS box . SENT . </s>
... nhưng điều này cho kết quả:
PS D:> head -n 1 .\outputfile
ÿ_< t e x t i d = " h t t p :// o b s e r v e r . g u a r d i a n . c o . u k/o s m/s t o r y/0 , , 1 0 0 9 7 7 7 , 0
0 . h t m l " > <s> H o o l i g a n s N N S h o o l i g a n , ,
, u n b r i d l e d J J u n b r i d l e d p a s s i o n N N p a s s i o n
- : - a n d C C a n d n o D T n o e x e c u t i v e J J
e x e c u t i v e b o x e s N N S b o x . S E N T . </s >
Làm thế nào có thể điều này xảy ra?
Sửa: kể từ khi vấn đề của tôi không có bất cứ điều gì để làm với Ruby, tôi đã gỡ bỏ Ruby-mã, và bao gồm việc sử dụng của tôi về cấu trúc hệ thống.
Nền tảng của bạn là gì? ['Ÿ_'] (http://en.wikipedia.org/wiki/Byte_order_mark#UTF-16) chắc chắn trông giống như một BOM cho đầu ra UTF-16. – sarnold
Không biết tại sao nhưng tệp đầu ra của bạn dường như được mã hoá UTF-16. – Stefan
Cảm ơn! Tôi chưa bao giờ đoán được ý nghĩa của 'ÿ_'. Tôi sợ nó đặc trưng cho Windows và không liên quan gì đến Ruby. Các NUL-byte khiến tôi nghi ngờ UTF-16, và vấn đề thực sự được giải quyết khi tôi có đầu ra của Ruby trong UTF-16 ... và sử dụng tệp tin của Ruby thay vì toán tử '>' của PowerShell. – wen