Chuyển đổi tệp văn bản thành UTF-8 trên dấu nhắc lệnh của Windows


17

Tôi cần chuyển đổi tệp văn bản sang định dạng UTF-8 thông qua dấu nhắc lệnh của Windows. Điều này cần phải được thực hiện trên một máy khác và tôi không có quyền cài đặt phần mềm trên máy đó. Tôi cần một cái gì đó như:

c:\notepad   source-file target-file --encoding option

Có một tiện ích nhắc lệnh Windows có thể làm điều đó?

Câu trả lời:


29

Tôi cần chuyển đổi một tệp văn bản sang định dạng utf-8 thông qua dấu nhắc lệnh của windows

Bạn có thể dễ dàng làm điều này với PowerShell:

Get-Content .\test.txt | Set-Content -Encoding utf8 test-utf8.txt

Đọc thêm


Ngoài ra, bạn cần chuyển sang powershell để thực thi lệnh và sau đó thoát nó để quay lại dấu nhắc lệnh của windows.
1107888

Thật. Hoặc chạy trực tiếp trong vỏ PowerShell.
DavidPostill

@DavidPostill bất kỳ ý tưởng nào làm thế nào chúng ta có thể chuyển đổi nhiều hơn một tệp tức là xử lý tệp hàng loạt với cùng một dòng lệnh?
vibs2006

1
@ vibs2006 Sử dụng ForEachvòng lặp. Xem ForEach - PowerShell - SS64.com .
DavidPostill

Phương pháp này sẽ chuyển đổi thành UTF-8 hoặc UTF-8-BOM đơn giản?
Cale Sweeney

2

Sử dụng iconvtừ gói GNUWin32. Nó nhanh hơn nhiều, đặc biệt nếu các tệp của bạn khoảng hoặc hơn 1 Gb.

"C:\Program Files (x86)\GnuWin32\bin\iconv.exe" -f cp1251 -t utf-8 source.txt > result.txt

những gì hiện cp1251lá cờ làm gì?
lacostenycoder

đó là mã hóa đầu vào. vi.wikipedia.org/wiki/Windows-1251
nadre

2

Đây là cho mỗi tệp chuyển đổi * .text thành tệp * .sql:

foreach ($file in get-ChildItem *.txt) {
    Echo $file.name
    Get-Content $file | Set-Content -Encoding utf8 ("$file.name" +".sql")
 }

Sau khi chạy một số tệp sql, đôi khi xảy ra lỗi, tôi quyết định sử dụng linux với lệnh iconv =))
nobjta_9x_tq
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.