const char * dizesini NSString'e dönüştürmek için hangi yöntemin daha iyi olacağını merak ediyorum.
Bazı gerçekler olduğunu buldum.const char * dizgesini uzunluk ve NSString'e dönüştürme
- [NSString stringWithCString: length:] türden bir kullanımdan kaldırılmıştır.
- [NSString stringWithCString: kodlama] my amaç
için kullanılan Ama uzunluğu VE kodlama (ile dönüştürmek istediğiniz edilebilir Sanırım bazı ASCII olmayan karakteri varsa için kodlamayı ayarlayarak bu cezayı yapmak istiyorum çünkü UTF-8). Düşüncesi olan var mı?
Sadece
- diğer kömürü oluşturmak artık düşünmek ve std :: strncpy (CH1, CH2, len)
- kullanımı kullanarak uzunluğunda kopyalama [NSString stringWithCString: kodlamayı:]
Ama iyi çalışmıyor.
Bu yalnızca dizginiz ASCII olsa da çalışır. Eğer dizginiz başka bir şeyse (örn. MacRoman veya ISO Latin), en iyi ihtimalle belirli bir karakter için yanlış glifin görüntülenmesini sağlayabilirsiniz, en azından bir NIL dizgisi elde edeceksiniz, çünkü geçersiz bir bayt dizisi oluşturmuşsunuzdur. geçerli bir UTF8 karakterini eşleştirin (Evet, bu mümkündür. UTF8, 256 farklı karakterden daha fazlasını kodlar, bu nedenle bir karakteri kodlayan çoklu bayt dizileri vardır ve bunlardan bazıları geçerli değildir (henüz). – uliwitness
Çok kullanışlıdır Teşekkürler – vgonisanz