Tôi có một yêu cầu trong đó một khách hàng sẽ cung cấp một tệp trong mã hóa ANSI, nhưng hệ thống của tôi chỉ có thể đọc thành công một tệp trong UNICODE. Vậy làm cách nào để giải quyết vấn đề này? Tôi biết khi tôi "lưu dưới dạng" tệp thành UNICODE, mã hóa tệp được chọn. Rất khó để làm cho khách hàng tuân thủ yêu cầu của chúng tôi. Vì vậy, tôi có thể có bất kỳ chương trình hàng loạt cho thư mục này để chuyển đổi tập tin này vào UNICODE và sau đó nhận?Cách chuyển đổi tập tin * .txt thành Unicode
Trả lời
recode có thể thực hiện công việc.
iconv
thể làm điều đó:
Usage: iconv [OPTION...] [FILE...]
Convert encoding of given files from one encoding to another.
Input/Output format specification:
-f, --from-code=NAME encoding of original text
-t, --to-code=NAME encoding for output
Information:
-l, --list list all known coded character sets
Output control:
-c omit invalid characters from output
-o, --output=FILE output file
-s, --silent suppress warnings
--verbose print progress information
-?, --help Give this help list
--usage Give a short usage message
-V, --version Print program version
Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.
Bạn cũng có thể dễ dàng chuyển đổi bảng mã trong python:
inf = open("infile.txt")
data = inf.read().decode("latin1")
inf.close()
outf = open("outfile.txt", "w")
outf.write(data.encode("utf-8"))
outf.close()
Dưới đây là một giải pháp Powershell
$lines = gc "pathToFile"
$lines | out-file -enconding Unicode
Cả ANSI hay Unicode là mã hóa. Bạn sẽ phải biết mã ANSI của tệp đầu vào và Unicode enco ding (UTF8 hoặc UTF16 - LE hoặc BE) trước khi bạn có thể sử dụng một trong các công cụ được đề xuất (chẳng hạn như iconv)
Ước gì tôi có thể upvote điều này nhiều hơn. Đối với hầu hết người dùng Windows, "Unicode" có nghĩa là UTF32. Hầu hết các ngôn ngữ Tây Âu sử dụng bảng mã Latin1, vì vậy hầu hết mọi người cho rằng đó là "ANSI" mã hóa (một lần nữa, tôi đổ lỗi cho MS cho việc sử dụng từ của họ trong "Save As" tùy chọn của họ). –
Chúng ta có thể thêm rằng nhìn vào Control Panel-> Regional Settings-> Advanced Options sẽ hiển thị các mã ANSI nào được cài đặt và sử dụng. –
Trên hệ thống Windows, "Unicode" thường có nghĩa là UTF-16. –
Tôi đã đi qua một số công cụ được đề cập ở trên, nhiều công cụ yêu cầu dòng lệnh.
Tôi đã tìm thấy cách dễ dàng hơn để chuyển đổi tệp trong Windows.
Install Notepad2 (http://www.flos-freeware.ch/). Đó là mã nguồn mở và miễn phí.
Mở tập tin có mã hóa ANSI,
Double Click "ANSI" chữ ở phía dưới,
Chọn Encoding mới như "utf8"
Lưu tập tin.
Chỉ cần một vài lần nhấp để hoàn thành công việc.
Ngoài ra, bạn có thể dễ dàng xem lại nội dung sau khi thực hiện để kiểm tra kỹ.
Notepad2 có nhiều lợi ích khác nhau trên Notepad. đang được đánh dấu, Undo/Redo, vv
: D
Tôi không thấy cách thay đổi mã hóa bằng cách sử dụng GUI Notepad2 dễ hơn là sử dụng dòng lệnh, đặc biệt là với nhiều tệp để làm? – ehambright
GUI là không có trí tuệ: X Commandline cần sự phụ thuộc ... notepad ++ chỉ cần nhấp vào nhấp chuột ... – CodeFarmer
của Ruby oneliner, fwiw:
ruby -e 'STDOUT.write STDIN.read.force_encoding(Encoding::WINDOWS_1252).encode!(Encoding::UTF_8)' <infile.csv> outfile.csv
Nếu tập tin đầu vào của bạn là khủng khiếp bạn có thể cần tack STDIN.binmode; STDOUT.binmode;
trên mặt trước của kịch bản Ruby.
- 1. Tự động chuyển đổi txt thành xls
- 2. Chuyển đổi chuỗi unicode thành chuỗi byte
- 3. chuyển đổi tập tin txt chỉ với các tab/không gian hỗn hợp thành các tab (nếu có thể)
- 4. Chuyển đổi giá trị int thành unicode
- 5. Lưu danh sách vào tập tin txt
- 6. chuyển đổi tập tin- .mwb sang tập tin .sql
- 7. Làm thế nào để chuyển đổi tập tin .mop thành tập tin .po
- 8. Chuyển đổi tệp txt thành csv trong powershell
- 9. chuyển đổi tên biểu tượng Toán học thành Unicode thành Unicode
- 10. Có cách nào để chuyển đổi tài liệu từ Microsoft sang tập tin notepad .txt formate không?
- 11. tập tin lớp học để chuyển đổi tập tin java
- 12. tên tập tin Unicode trên Windows trong Ruby
- 13. Chuyển đổi tập tin trong F #
- 14. Chuyển đổi codepoint unicode thành chuỗi ký tự trong Ruby
- 15. Cách chuyển đổi chuỗi có mã hóa Unicode thành chuỗi ký tự
- 16. đọc tập tin txt qua javascript của khách hàng
- 17. Chuyển đổi chuỗi \ u thoát Unicode thành ASCII
- 18. Chuyển đổi mã khóa ảo thành mã unicode
- 19. Tìm và xóa các tập tin trong .txt bash
- 20. Chuyển đổi codicoint unicode thành UTF8 hex trong python
- 21. chuyển đổi unicode thành ký tự bằng ruby
- 22. Chuyển đổi ký tự tiếng Trung thành Unicode
- 23. Đọc các tập tin Unicode C++
- 24. Cách chuyển đổi tăng :: hệ thống tập tin :: directory_iterator thành const char *
- 25. SSIS Chuyển đổi giữa Unicode và Lỗi không phải Unicode
- 26. Mở và đọc txt tập tin trong ASP
- 27. Đọc tập tin txt với đa luồng trong python
- 28. Tìm tất cả các chuỗi "the" trong tập tin .txt
- 29. Tập tin văn bản sắp xếp PHP (.txt) số
- 30. Ghi vào một tập tin .txt (UTF-8), trăn
Khi bạn nói 'Unicode', bạn có nghĩa là UTF8, UTF16, UTF32 hoặc một số đại diện khác không? Và làm thế nào bạn sẽ phát hiện ra mã nguồn được thiết lập khi nó không phải là Unicode? nền tảng của bạn là gì? –
Hầu hết mọi người nghĩ UTF-32 = Unicode. Tôi đổ lỗi cho MS và các tùy chọn "Save As" của họ cho ý tưởng này là rất phổ biến trong quần chúng. Buồn khi thấy một nhà phát triển (những người nên biết rõ hơn) chia sẻ nó. –
MS sử dụng chủ yếu là UCS-2, không phải UTF-32. – flodin