Cách đơn giản nhất để chuyển đổi một codepoint Unicode thành một chuỗi byte UTF-8 trong C là gì? Cách duy nhất để ghi nhớ là sử dụng iconv
để ánh xạ từ mã UTF-32LE sang UTF-8, nhưng điều đó có vẻ như quá mức cần thiết.Cách đơn giản nhất để chuyển đổi mã unicode thành UTF-8
Trả lời
Chuyển đổi Unicode không phải là một nhiệm vụ đơn giản. Sử dụng iconv dường như không quá mức nào đối với tôi. Có lẽ có một phiên bản thư viện iconv mà bạn có thể sử dụng để tránh thực hiện cuộc gọi system(), nếu đó là những gì bạn muốn tránh.
Tôi đã lên kế hoạch sử dụng thư viện. –
Đối với hướng này, đó là một nhiệm vụ cực kỳ đơn giản. Không cần thư viện. Ngoài ra, 'iconv' đề cập đến cả giao diện C và chương trình tiện ích trong POSIX. Tôi nghi ngờ OP đã nói về giao diện C, mà sẽ là một lựa chọn rất tốt cho việc này, nhưng viết nó cho mình cũng không phải là khó khăn. Đó là một hướng khác (UTF-8 đến điểm mã) dễ gây rối. –
UTF8 hoạt động bằng cách mã hóa độ dài của điểm mã hóa được mã hóa thành các bit cao nhất của byte được mã hóa. xem http://en.wikipedia.org/wiki/UTF-8#Description
Tôi tìm thấy chức năng nhỏ này trong C tại đây http://www.deanlee.cn/programming/convert-unicode-to-utf8/, chưa thử nghiệm.
Lưu ý rằng mã này chỉ xử lý các điểm mã dưới 0x10000 (vì wchar_t trên Windows thực sự là UTF-16). –
Liên kết đến mã theo cách quay lại máy: http://web.archive.org/web/20100305210636/http://www.deanlee.cn/programming/convert-unicode-to-utf8/ – Eloff
Tôi có thể đề xuất ICU không? Đó là một cách "chuẩn công nghiệp" hợp lý để xử lý các vấn đề i18n.
Tôi chưa sử dụng phiên bản C, nhưng tôi nghi ngờ ucnv_fromUnicode có thể là chức năng bạn đang theo dõi.
Tôi sẽ không tham gia giới thiệu các phụ thuộc vào một tập hợp các thư viện không do hệ thống cung cấp chỉ dành cho tác vụ này. Nhờ đề nghị mặc dù. –
- 1. Chuyển đổi codicoint unicode thành UTF8 hex trong python
- 2. Thư viện C để chuyển đổi các điểm mã unicode thành UTF8?
- 3. Làm cách nào để chuyển đổi chuỗi thành UTF8?
- 4. java: cách chuyển đổi tệp thành utf8
- 5. Cách đơn giản nhất để chuyển đổi Màu thành chuỗi như #XXXXXX thành System.Windows.Media.Brush
- 6. Chuyển đổi latin1 thành UTF8
- 7. C#: Chuyển đổi byte [] thành chuỗi được mã hóa UTF8
- 8. Cách đơn giản nhất để chuyển đổi mảng thành vector là gì?
- 9. Chuyển đổi mã khóa ảo thành mã unicode
- 10. golang chuyển đổi iso8859-1 thành utf8
- 11. Các bước đơn giản nhất để chuyển đổi TCL TK thành ứng dụng độc lập
- 12. Cách chuyển đổi chuỗi thành UTF8 trong Ruby
- 13. Cách đơn giản nhất để sao chép int thành byte []
- 14. Chuyển đổi nhóm SQL đơn giản thành LINQ to SQL
- 15. Cách nhanh nhất để chuyển đổi khóa và giá trị của dict từ `unicode` thành` str`?
- 16. mã Chuyển đổi HTML sang văn bản đơn giản
- 17. Cách đơn giản nhất để chuyển đổi chuỗi phân cách bằng dấu phẩy thành int [] là gì?
- 18. Chuyển đổi chuỗi unicode thành chuỗi byte
- 19. Chuyển đổi giá trị int thành unicode
- 20. Cách đơn giản nhất để chuyển đổi XML sang HTML bằng XSLT trong C#?
- 21. Chuyển đổi XML bất hợp pháp & char thành utf8 - python
- 22. Làm thế nào để chuyển đổi một db trong postgreSQL thành utf8?
- 23. Chuyển đổi OCaml thành F #: Có cách nào đơn giản để mô phỏng #trace cấp cao nhất OCaml trong F #
- 24. Cách sử dụng iconv để chuyển đổi utf8?
- 25. Chuyển đổi đang ggplot2 đơn giản để sử dụng data.table
- 26. Cách chuyển đổi tập tin * .txt thành Unicode
- 27. Cách đơn giản để chuyển đổi HH: MM: SS (giờ: phút: giây.split giây) thành giây
- 28. Có cách nào để chuyển đổi đối tượng Ember thành đối tượng javascript đơn giản không?
- 29. Cách đơn giản để chuyển đổi một DOMSource thành một StreamSource?
- 30. Chuyển đổi chuỗi UTF8 thành ASCII trong Perl
Tôi đã kết thúc bằng biểu tượng. Nó có vẻ như quá mức cần thiết, nhưng nó cũng có vẻ như là giải pháp thực sự duy nhất mà không giới thiệu các phụ thuộc bên ngoài. –
Vì vậy, tại sao không chấp nhận câu trả lời của @ JesperE và upvote nó. – tvanfosson
Tôi nghĩ rằng "không còn có liên quan" được sử dụng khi một lỗi trong một sản phẩm được cố định, hoặc công cụ tốt hơn được giới thiệu, không phải khi người hỏi không còn quan tâm đến câu trả lời ... –