2010-07-18 12 views
11

std :: wstring dosyasını saran bir sınıfla çalışıyorum, bu kodun çapraz platform olması gerekiyor, windows işlevlerinin eşdeğerleri var mı: MultiByteToWideChar & WideCharToMultiByte on linux?Linux eşdeğeri ne kadardır: MultiByteToWideChar & WideCharToMultiByte?

Teşekkür ederiz.

+0

Unutmayın ki GNU/Linux'ta std :: wstring, Windows'ta std :: wstring'in iki katı büyüklüğündedir. – rubenvb

+4

Bu –

+0

@Johannes Schaub için C99 functios mbtowc ve wctomb vardır: "mbtowc" ve "wctomb" 1995 yılında Normative Amendment 1'de eklenmiştir. – caf

cevap

12

Linux eşdeğerleri iconv fonksiyonlardır iconv_open, iconv ve iconv_close (diyelim dokümantasyon man 3 iconv_open vs.). Çapraz platform uygulamaları için, bunun yerine ICU gibi özel kütüphaneler kullanın. Bu kütüphaneler zaten kendi dizgi sınıflarını içerirler; std::wstring'u sarmaya gerek yoktur.

4

mbtowc ve wctomb en doğrudan benzerleri, ancak (setlocale() ile değiştirilebilir) akım LC_CTYPE locale'e ait baytlı karakter kümesi üzerinde işlem unutmayın.