Khi tôi sử dụng biểu tượng để chuyển đổi từ UTF16 sang UTF8 thì tất cả đều tốt nhưng ngược lại nó không hoạt động. Tôi có các tệp này:Chuyển đổi UTF8 sang UTF16 bằng cách sử dụng biểu tượng
a-16.strings: Little-endian UTF-16 Unicode c program text
a-8.strings: UTF-8 Unicode c program text, with very long lines
Văn bản trông OK trong trình chỉnh sửa. Khi tôi chạy này:
iconv -f UTF-8 -t UTF-16LE a-8.strings > b-16.strings
Sau đó, tôi nhận được kết quả này:
b-16.strings: data
a-16.strings: Little-endian UTF-16 Unicode c program text
a-8.strings: UTF-8 Unicode c program text, with very long lines
Tiện ích file
không hiển thị định dạng tập tin dự kiến và văn bản không nhìn tốt trong trình soạn thảo một trong hai. Nó có thể được rằng iconv không tạo ra BOM phù hợp? Tôi chạy nó trên dòng lệnh MAC.
Tại sao không phải là b-16 ở định dạng UTF-16LE phù hợp? Có cách nào khác để chuyển đổi utf8 thành utf16?
Công cụ xây dựng khác dưới đây.
$ iconv -f UTF-8 -t UTF-16LE a-8.strings > b-16le-BAD-fromUTF8.strings
$ iconv -f UTF-8 -t UTF-16 a-8.strings > b-16be.strings
$ iconv -f UTF-16 -t UTF-16LE b-16be.strings > b-16le-BAD-fromUTF16BE.strings
$ file *s
a-16.strings: Little-endian UTF-16 Unicode c program text, with very long lines
a-8.strings: UTF-8 Unicode c program text, with very long lines
b-16be.strings: Big-endian UTF-16 Unicode c program text, with very long lines
b-16le-BAD-fromUTF16BE.strings: data
b-16le-BAD-fromUTF8.strings: data
$ od -c a-16.strings | head
0000000 377 376 /\0 * \0 \0 \f 001 E \0 S \0 K \0
$ od -c a-8.strings | head
0000000 / * * * Č ** E S K Y ( J V O
$ od -c b-16be.strings | head
0000000 376 377 \0 /\0 * \0 * \0 * \0 001 \f \0 E
$ od -c b-16le-BAD-fromUTF16BE.strings | head
0000000 /\0 * \0 * \0 * \0 \0 \f 001 E \0 S \0
$ od -c b-16le-BAD-fromUTF8.strings | head
0000000 /\0 * \0 * \0 * \0 \0 \f 001 E \0 S \0
Rõ ràng BOM bị thiếu bất cứ khi nào tôi chạy chuyển đổi sang UTF-16LE. Bất kỳ trợ giúp nào về điều này?
nếu bạn sử dụng 'iconv -f UTF-8 -t UTF-16LE a-8.strings -o b-16.strings' thay thế? Tôi nghi ngờ nó sẽ sửa chữa nó, nhưng nó có giá trị một shot. – cha0site
phiên bản biểu tượng của tôi không hỗ trợ tham số -o (MacOS). Như bạn đã nói, nó có thể sẽ không giúp được gì. Cảm ơn bạn đã thử. –
Đầu ra của bạn hiển thị 'iconv -f UTF-8 -t UTF-16 a-8.string' (chạy trên hệ thống nhỏ) tạo ra UTF-16 lớn với BOM. Bạn có thể xác nhận điều đó không? Lệnh Mac icon '' có hoạt động khác với lệnh trên Linux không? 'echo hello | iconv -f ascii -t UTF-16 | od -x' –