2012-08-14 47 views
12

Tôi có thể sử dụng tiếng vọng để tạo tệp văn bản UTF-8 không? Ví dụ nếu tôi muốn tạo ra một tập tin có chứa các ký tự "e"Ký tự Echo UTF-8 trong cửa sổ lô

echo "abcd ę" > out.txt 

(tập tin thực thi được mã hóa với UTF-8)

kết quả là một ANSI tập tin được mã hóa và "E "ký tự được chuyển thành" ê ". Làm cách nào để thuyết phục "echo" tạo tệp UTF-8?

Nếu không thể, tôi có thể thay đổi mã hóa của tệp văn bản sau khi tạo tệp không? Có công cụ nào trong gói gnuwin32 có thể giúp tôi thay đổi mã hóa không?

cảm ơn

+0

Khi tôi thử nó out.txt chứa 'abcd ę' như được xem bởi Notepad, mặc dù trong cửa sổ nhắc lệnh, nó trông giống như' abcd ─Ö'. Tôi đã không nhận được một 'ê' ở tất cả. – Neil

Trả lời

2

Vấn đề là file chứa dòng:

<META content="text/html; charset=iso-8859-2" http-equiv=Content-Type> 

và sau đó Notepad2 và Firefox đã thay đổi charset, cho thấy một thay vì e. Trong Notepad đơn giản, các tập tin có vẻ ok. Giải pháp là để thêm UTF-8 chữ ký (Byte Order Mark) lúc bắt đầu của tập tin:

echo1 -ne \xEF\xBB\xBF > out.htm 

(echo1 là từ GnuWin32)

cảm ơn cho câu trả lời

7

Thử khởi động CMD.exe bằng công tắc/U: nó làm cho tất cả đầu ra của ống là Unicode thay vì ANSI.

16

Sử dụng chcp lệnh để thay đổi trang mã hoạt động thành 65001 cho utf-8.

chcp 65001 
+0

cảm ơn, nó hoạt động –

+2

không làm việc cho tôi; ( – brunobliss

1

chcp 65001

như đề cập đến bởi @cuixiping là một câu trả lời tốt nhưng nó đòi hỏi phải thay đổi phông chữ mặc định cmd để Lucida Console ví dụ như bạn có thể đọc ở đây: https://superuser.com/questions/237081/whats-the-code-page-of-utf-8#272184

và tất nhiên, như đã đề cập bởi @BearCode, văn bản phải ở dạng utf-8 ... trong trường hợp của tôi, với Vim trong GNU/Linux có quyền truy cập từ xa, nhưng notepad ++ là đúng ay quá!

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