2010-07-18 43 views
11

Tôi đang làm việc với một lớp kết thúc tốt đẹp std :: wstring, mã này cần phải là nền tảng chéo, có tương đương với các chức năng của cửa sổ: MultiByteToWideChar & WideCharToMultiByte trên Linux không?Tương đương với Linux là gì: MultiByteToWideChar & WideCharToMultiByte?

Cảm ơn bạn.

+0

Hãy nhớ rằng trên GNU/Linux, std :: wstring gấp đôi kích thước của std :: wstring trên Windows. – rubenvb

+4

Có các dấu chấm câu C99 mbtowc và wctomb cho –

+0

@Johannes Schaub: 'mbtowc' và' wctomb' đã được thêm vào trong Bản sửa đổi chuẩn mực 1 năm 1995. – caf

Trả lời

12

Linux tương đương là iconv chức năng iconv_open, iconviconv_close (nói man 3 iconv_open vv cho các tài liệu hướng dẫn). Đối với các ứng dụng đa nền tảng, thay vào đó hãy sử dụng các thư viện chuyên dụng như ICU. Các thư viện này đã chứa các lớp chuỗi riêng của chúng; không cần phải bọc std::wstring.

4

mbtowcwctomb là tương đương trực tiếp nhất, nhưng lưu ý rằng chúng hoạt động trên bộ ký tự nhiều byte tương ứng với LC_CTYPE locale hiện hành (có thể được thay đổi với setlocale()).

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